@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/

10-13 03:49