-1

こんにちは皆さん、私は Xcode/iOS 開発が初めてです

可変配列に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' が原因でアプリを終了します。

ここで何が悪いのですか?この問題を解決するのを手伝ってくれませんか

配列にはこれが含まれています(Json?)

{
   Address = "\U05d3\U05e8\U05da \U05d4\U05e9\U05dc\U05d5\U05dd 53";
   CellPhone = "052-3275381";
   EMail = "editor@pc.co.il";
   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 = "";
 }
4

2 に答える 2

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];
于 2013-11-10T09:24:06.430 に答える
0

NSMutableArray *_arr = [[NSMutableArray alloc]init]; NSDictionary *results = PASS JSON 値;

[_arr add object:[results objectforkey:@“Address”]]; [_arr add object:[results objectforkey:@“CellPhone”]];

于 2013-11-10T09:32:52.307 に答える