"Enter"a basıp içeriğe geçin

Etiket: NSMutableDictionary

MKNetwork ile Array Post Etmek

MKNetwork’le array post etmek için iki gündür çabalıyorum. Google’da okuduklarım beni çözüme ulaştırmasa da çözüme giden yolu görmemi sağladı. Aslında çözüm çok ta basitmiş. MKNetwork’le post etmek istediğim verileri karşılayacak api PHP ile yazıldığından; bir array’in gitmesi için mesela şu şekilde olması gerekiyor; il_id[]=53&il_id[]=61&id_id=10 Bu; php’de il_id diye bir array oluşturup içine 53, 61,  10 verilerini yerleştirir. Problem şu; MKNetwork NSMutableDictionary tipinde bir parametre listesi alıyor. Yapısı gereği NSMutableDictionary objesine birden fazla aynı key’e sahip öğe ekleyemiyoruz. yani “il_id[]” keyini sadece bir kere kullanabiliyoruz. Ben de bunu aşmak için uğraş veriyordum. Google’da bulduğum şu sayfa sorunumu çözmedi ama çözümü bulmamı…

NSMutableDictionary’den eleman silmek

Objective-C’de NSMutableDictionary tipindeki bir değişkenden [dict removeObjectForKey:key] fonksiyonu ile eleman silinir. Eğer bu işlemi yaparken *** Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection <__NSDictionaryM: 0x92c50b0> was mutated while being enumerated.’ hatası alıyorsanız; bir iterasyon sırasında yani NSMutableDictionary tipindeki değişkenin elemanları üzerinde döngü ile dolaşırken bu işi yapmaya kalkıyorsunuz demektir.     for (NSString* key in dict) { if([key isEqualToString:@”silinecek_key”]) [dict removeObjectForKey:key];  //iterasyon içerisinde bu işlem yapılmaz! } Bu  hatayı engellemek için döngü içerisinde hangi öğelerin silineceğini bir dizide tutmalı ve döngü sonrasında bu elemanları değişkenden çıkarmalıyız. İkinci bir yol olarak da NSMutableDictionary tipindeki değişkenin üzerinde değil, [dict allKeys]…