2011-06-15 28 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];