0

Objective-C のリテラルとクラス メソッドを調べましたが、メモリの観点からは明確ではありません。どのバージョンのコードを使用するか混乱しています。私は2つのコードを持っています.メモリリークの観点からそれらの違いを理解したいと思います.

「returnArray」が返される配列であると仮定します

バージョン 1

if([tempArray count] > 0) {
    for(NSDictionary *dict in tempArray) {

        NSDictionary *tempDict = [
                                  [NSDictionary alloc]initWithObjectsAndKeys:
                                  [dict objectForKey:@"verifiedEmail"],@"verifiedEmail",
                                  [dict objectForKey:@"identifier"], @"identifier",
                                  nil
                                  ];

        [returnArray addObject:tempDict];
    }
}

バージョン2

if([tempArray count] > 0) {
    for(NSDictionary *dict in tempArray) {
        NSDictionary *tempDict = @{
                                 @"verifiedEmail" : [dict objectForKey:@"verifiedEmail"],
                                 @"identifier" : [dict objectForKey:@"identifier"],
                                 };
        [returnArray addObject:tempDict];
    }
}
4

4 に答える 4