@interface SearchViewController : UIViewController<UITableViewDelegate, UITableViewDataSource> {
NSMutableDictionary * results;
}
@property (nonatomic, retain) NSMutableDictionary * results;
和@synthesize结果;在他们之中
此代码将破坏
NSMutableDictionary * md = [[NSMutableDictionary alloc] init];
results = md;
[md release];
此代码正确
NSMutableDictionary * md = [[NSMutableDictionary alloc] init];
results = md;
对我来说很清楚,该指针没有保留,但我不知道为什么,我做了水。错误?
最佳答案
你应该使用
self.results = md
因此md被保留。
您可以使用点语法访问属性。通过使用点语法为属性分配某些内容,您可以调用setter来保留您的情况下的值。如果没有点,您只需将可变字典分配给结果,就不会调用设置器。
您可以阅读有关properties in Apple's Objective-C Programming Language的信息,请参阅。常规在点语法段落下面的位置进一步使用。
关于objective-c - 由NSMutableDictionary发布/保留,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5532176/