2011-06-15 76 views
3

我的新目标C.对开发商的文件之一,我发现下面statemenet。替代到指定返回值

以下语句调用lockFocusIfCanDraw方法并将返回值分配给 标志。它不会生成编译器警告,除非标志 的类型与方法的返回类型之间不匹配。尽管如此,这种模式强烈不鼓励。

flag = aView.lockFocusIfCanDraw; 

除了上述之外,我可以想到很多这种情况。例如,我可能想从一个框中捕获显示文本并将其分配给本地字符串等。

我只是想知道,如果上述语句不鼓励,那么处理这种情况的推荐方法是什么?

+1

根据记录,该声明是在Objective-C编程语言 - >对象,类和消息 - >对象信息 - > [点语法(http://developer.apple.com/library/mac/文档/可可/概念/的ObjectiveC /章节/ ocObjectsClasses.html#// apple_ref/DOC/UID/TP30001163-CH11-SW17) - >点语法 – albertamg 2011-06-15 20:26:40

回答

5

用于调用方法的点语法应仅用于性质(即调用访问器时)。由于lockFocusIfCanDraw不是存取方法,你应该使用常规的方括号语法,即flag = [aView lockFocusIfCanDraw];代替。

+0

我怎么会知道,如果lockFocusIfCanDraw是一个属性或方法不正确使用? – phi 2011-09-09 08:06:46

2

标志= [aView lockFocusIfCanDraw];