0

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

UIView *testview; 
[testview someMethod];

据我观察,这不会引起任何问题,但想确保确实如此。

4

1 回答 1

6

在 Objective-C 中传递消息nil不是错误,只是一个 NOP。但是,将消息传递到不正确的地址(例如未初始化或悬空指针)错误的。根据您定义未初始化变量的上下文,它可能会被隐式初始化,nil或者您只是幸运地拥有这段nil 记忆。但是为了保证代码安全,您需要保证它要么是一个有效的对象,要么是nil指向一个有效的对象。执行此操作的简单方法是显式初始化它:UIView *testview = nil;.

于 2013-04-27T06:17:17.093 回答