0
我想了解哪個函數是正確的,並希望有些人可以給我func1和func2之間的建議。Objective-C塊使用強變量
現在我用了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]];
}];
}
謝謝,這意味着我可以在此塊中使用任何變量,例如,我可以在塊中的NameAndIdDictionary中添加新對象。 – user994475 2013-02-20 16:21:09
或者只有sortedArrayUsingComparator這個塊沒有問題,另一個塊會有問題或者保留週期問題。 – user994475 2013-02-20 16:22:28