2013-11-10 2 views
-1

Привет, ребята Я новичок в Xcode/IOS разработкидобавление JSon в изменяемом массиве решает в аварии

Я пытаюсь добавить данные JSON в изменяемый массив, и это приводит к краху приложения :( до сих пор здесь мой код:

if(! [defaults objectForKey:@"Person1"]) 
    [defaults setObject:[PersonsFromSearch objectAtIndex:index] forKey:@"Person1"]; 
else 
{ 
    NSMutableArray *Array = [[NSMutableArray alloc]init]; 
    id object = [defaults objectForKey:@"Person1"]; 
    Array = [object isKindOfClass:[NSArray class]] ? object : @[object]; 
    [Array addObject:[PersonsFromSearch objectAtIndex:index]];//crash here :((
    [Array moveObjectFromIndex:[Array count] toIndex:0]; 

} 

Краш самосвал:

* Нагрузочное приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '- [__ NSArrayI AddObject]: непризнанный селектор направил к экземпляру 0xcb4d380' * Первый стек вызова броска:

что здесь не так? Вы можете, пожалуйста, помогите мне решить эту проблему

массив содержит это (JSON?)

{ 
    Address = "\U05d3\U05e8\U05da \U05d4\U05e9\U05dc\U05d5\U05dd 53"; 
    CellPhone = "052-3275381"; 
    EMail = "[email protected]"; 
    EnglishPerson = "Yehuda Konfortes"; 
    FaceBookLink = ""; 
    Fax1 = "03-7330703"; 
    Fax2 = ""; 
    FileNAme = "100050.jpg"; 
    HomeEMail = ""; 
    HomeFax = ""; 
    HomePhone1 = ""; 
    HomePhone2 = ""; 
    PersonID = 100050; 
    PersonName = "\U05d9\U05d4\U05d5\U05d3\U05d4 \U05e7\U05d5\U05e0\U05e4\U05d5\U05e8\U05d8\U05e1"; 
    Phone1 = "03-7330733"; 
    Phone2 = ""; 
    ZipCode = ""; 
} 
+0

Это не массив. Это один словарь. Что вы хотите отсортировать? Или вы просто хотите добавить все значения в массив? –

+0

Я хочу иметь массив таких объектов (не нужно помогать в сортировке). Я хочу, чтобы Array [0] был {адресом .... , cellphone ..., email ...} Array [1] {адрес ..., сотовый телефон ..., адрес электронной почты ...} –

+0

если мой массив содержит словарь, поэтому я хочу сделать массив словарей Надеюсь, это возможно! –

ответ

1

[defaults objectForKey:@"Person1"]; возвращает словарь, но не массив. Вы не можете использовать метод addObject.

UPD Вы можете решить эту проблему путем создания массива с помощью одного объекта. Вот обновленный код:

NSMutableArray *Array = [[NSMutableArray alloc]init]; 
id object = [defaults objectForKey:@"Person1"]; 
Array = [object isKindOfClass:[NSArray class]] ? [object mutableCopy] : [@[object] mutableCopy]; 
[Array addObject:[PersonsFromSearch objectAtIndex:index]];//crash here :((
[Array moveObjectFromIndex:[Array count] toIndex:0]; 
+0

любые возможные решения? –

+0

Журнал [defaults objectForKey: @ "Person1"]; и расскажите, что вы хотите сделать. –

+0

Я хочу добавить этот объект в массив, чтобы я мог сортировать его и т. Д. , потому что у меня есть объект ~ 50, как это в массиве, но я хочу хранить только избранные, которые только 10. –

0

NSMutableArray * _arr = [[NSMutableArray Alloc] инициализации]; NSDictionary * результаты = PASS JSON Значение;

[_arr добавить объект: [результаты objectforkey: @ "Адрес"]]; [_arr добавить объект: [результаты objectforkey: @ "CellPhone"]];

+0

Нет, я не хочу создавать массив из данных, я хочу сделать массив JSONS таким. –

Смежные вопросы