0

どの関数が正しいかを理解したいのですが、func1 と func2 の間でアドバイスをくれる人がいるといいのですが。

今、私はfunc1を使用していましたが、func2にはメモリの問題があると言う人もいました。

@property (nonatomic) NSDictionary *NameAndIdDictionary;
 - (void) func1 
 {
    __weak NSDictionary *NameAndIdDictionary = self.NameAndIdDictionary;
     self.Keys = [[NameAndIdDictionary allKeys] sortedArrayUsingComparator: ^NSComparisonResult(id obj1, id obj2) {
        NSString *name1 = (NSString *)NameAndIdDictionary[obj1];
        NSString *name2 = (NSString *)NameAndIdDictionary[obj2];
        return [[name1 uppercaseString] compare:[name2 uppercaseString]];
    }];
 }


 - (void) func2
 {
     self.Keys = [[self.NameAndIdDictionary allKeys] sortedArrayUsingComparator: ^NSComparisonResult(id obj1, id obj2) {
        NSString *name1 = (NSString *)self.NameAndIdDictionary[obj1];
        NSString *name2 = (NSString *)self.NameAndIdDictionary[obj2];
        return [[name1 uppercaseString] compare:[name2 uppercaseString]];
    }];
 }
4

1 に答える 1

1

func2結構です。sortedArrayUsingComparator後で使用するためにブロックを保存しないため、保持サイクルの問題はありません。

于 2013-02-19T23:59:37.583 に答える