Iphone 即使属性设置为“保留”,访问错误仍然存在

Iphone 即使属性设置为“保留”,访问错误仍然存在,iphone,Iphone,我希望有人能告诉我为什么我错了。以下是我的代码片段: TimeLogAppDelegate *appDelegate = (TimeLogAppDelegate *)[[UIApplication sharedApplication] delegate]; PickFromListViewController * pl = [[PickFromListViewController alloc] initWithNibName:@"PickList" bundle:nil]; pickList

我希望有人能告诉我为什么我错了。以下是我的代码片段:

TimeLogAppDelegate *appDelegate = (TimeLogAppDelegate *)[[UIApplication sharedApplication] delegate];

PickFromListViewController * pl = [[PickFromListViewController alloc] initWithNibName:@"PickList" bundle:nil];
pickList = pl;
[pickList setSearchItems:[appDelegate tableListMutableArray:type ] :NSLocalizedString(type,nil)];
pickList.callingViewController = self;
[pl release];
pickList.responseSelector = [[type lowercaseString] stringByAppendingString: @"Selected:"];
pickList.includeNone = YES;
pickList.includeNew = YES;
[self.navigationController pushViewController:pickList animated:YES];
正如你所看到的,我正在中途发布pl,只是为了制造问题“pickList”显然是一个PickFromListViewController,并在标头中声明。我将它设置为属性(@property(nonatomic,retain)PickFromListViewController*pickList;)并@synthesis它

我的问题是:

pl发布后,我在访问pickList时收到一个错误的访问错误,表明指针不再可用,但我认为pickList是合成的,它会一直保留,直到我在dealoc发布它

有人能告诉我为什么我错了吗


非常感谢

选取列表
属性设置为
(非原子,保留)
仅在通过属性访问器访问属性时适用,如下所示:

self.pickList = P1;

如果只是为成员变量赋值:

pickList = P1;

您正在绕过属性访问器方法,因此不会发送
retain
消息。

详细信息中的合理问题,但问题标题没有给出您所问问题的线索……抱歉&谢谢-我没有意识到澄清问题的重要性。非常感谢。我明白了,现在我需要通过我的代码来解决这个问题。还有一件事;对我来说,self.pickList=P1和pickList=P1说了同样的话。你能想出一个办法让我明白这两种说法的含义吗?(如果您理解我的意思:)每当设置属性值时,我倾向于使用方括号语法。点语法看起来可能更清晰一些,但我发现这样更容易记住。当我看到var=value时,我知道我正在直接访问该成员。当我看到[self-setVar:value]时,我知道正在使用访问器。感谢您解释这一点和您的时间-Chris
pickList = P1;