0

オブジェクトを追加した後、NSMutableArray カウントはゼロを返します。理由を突き止めようとしてハッキングに 1 時間かかりましたが、まだ立ち往生しているので、ここに来ました。

次のコードに基づいたアイデアはありますか?問題は何ですか?

オブジェクト 'search' は、ヘッダ セットでポインタとして定義されたカスタム クラスであり、非アトミック属性を保持します。

   - (NSMutableArray *) populateArrayFromPlist{
 NSLog(@"Populate Array from PList");
 NSDictionary *dictionary;
 // read "foo.plist" from application bundle
 NSString *path = [[NSBundle mainBundle] bundlePath];
 NSString *finalPath = [path stringByAppendingPathComponent:@"asearch.plist"];
 dictionary = [NSDictionary dictionaryWithContentsOfFile:finalPath];

 for (id key in dictionary)
 {
  search = [[ASearch alloc] init];



  [dictionary valueForKey:key];

  [search setID:[[dictionary valueForKey:key] intValue] ];

  //[[search searchString] initWithString: key];

  search.searchString = [[NSMutableString alloc] initWithString: key];

  if (search == nil) {
   printf("Let me know now\n\n\n\n");
  }

  NSLog(@"%@", [search searchString]);

  NSLog(@"Setting string Value: %s\n", [key cString]);
  NSLog(@"Setting ID Value: %i\n", [[dictionary valueForKey:key] intValue]);

  //NSLog(@"aSearchArray count == %i", [[aSearchArray count] intValue]);
  [aSearchArray addObject:search];
  NSLog(@"aSearchArray count == %i", [aSearchArray count] );
4

1 に答える 1

2

aSearchArray は、カウントがゼロになる唯一の理由である nil オブジェクトです。

さらに確認するには、新しいローカル配列を作成し、オブジェクトをそれに追加してみてください。適切なカウントが得られます

于 2010-03-08T06:54:26.977 に答える