2

重複の可能性:
ObjectiveCでNSMutableArrayにオブジェクトを追加する際に問題が発生する

NSMutabeArrayプロパティを持つクラスがあります。クラスのメソッドの1つで、別のNSArrayからこのNSMutableArrayにオブジェクトを追加しようとしています。(追加されたオブジェクトはNSDictionariesです)。私はこれのためにいくつかのメソッドを試しましたが(以下に指定)、オブジェクトが配列に追加されていないため、どれも機能しないようです(NSLogを実行すると、NSMutableArrayのcountプロパティが0を返します。 。

それはなぜですか、そしてアイテムをNSMutableArrayに追加する適切な方法は何ですか?

方法1:

NSArray * logItemsTemp = [logParsedData objectForKey:@"log"]; //items to add, NSlooged the count property and there are 3 items
[[self logItemsArray] addObjectsFromArray:logItemsTemp]; //adding items to the NSMutableArrayProperty logItems array - unsuccessful 

方法2:

NSArray * logItemsTemp = [logParsedData objectForKey:@"log"];  //items to add, NSlooged the count property and there are 3 items
for (int i = 0; i<[logItemsTemp count]; i++) {
      [logItemsArray addObject:[logItemsTemp objectAtIndex:i]]; //adding items to the NSMutableArrayProperty logItems array - unsuccessful
}

編集:

NSArray * logItemsTemp = [logParsedData objectForKey:@"log"];
    if ([self logItemsArray] == NULL) {
        self.logItemsArray = [NSMutableArray new];
        NSLog(@"%@",logItemsTemp);
    }
        [[self logItemsArray] addObjectsFromArray:logItemsTemp];
4

1 に答える 1

1

どちらの方法でも機能します。最初の方法はより効率的です。

何も追加していない理由は、最初に可変配列を作成するのを忘れたと思うからです:)

あなたはそれself.logItemsArray.countが 0 だと言っています。これself.logItemsArraynil:)

// Let's see what my logitemsarray is
NSLog(@"%@", self.logItemsArray);
于 2012-10-27T15:58:49.313 に答える