Objective-C向未分配的对象发送消息

时间:2013-04-27 06:13:51

标签: ios objective-c

我想知道将方法传递给未分配的实例是否存在任何风险?目前,我的代码似乎完全正常,没有任何警告。

UIView *testview; 
[testview someMethod];

据我所知,这不会造成任何问题,但希望确保是这种情况。

1 个答案:

答案 0 :(得分:6)

将消息传递给nil不是Objective-C中的错误,只是一个NOP。但是,将消息传递给不正确的地址(例如未初始化或悬空指针), 是错误的。根据您定义未初始化变量的上下文,它可能是隐含初始化为nil,或者您只是幸运,这次内存为nil 。但是为了保证代码安全,您需要保证它是nil或指向有效对象。这样做的简单方法是明确初始化它:UIView *testview = nil;