[英]“Use of undeclared identifier”
我對Objective C很新。繼續得到這個錯誤
"Use of undeclared identifier"
對於這行代碼:
NSString *textOut1 = textOut.text;
顯然我只是想拉動文本框文本。 我在我的h文件中聲明了以下內容
@property (weak, nonatomic) IBOutlet UITextField *textOut;
所以我無法理解為什么我一直得到那該死的錯誤。 謝謝!
要訪問性能textOut
由變量引用的對象的someVariable
,你寫someVariable.textOut
。 因此,要訪問屬性textOut
作為對象的self
,你寫self.textOut
。 在這種情況下,您省略了所有者 - self
。
如果您不是(@synthesize)自己合成屬性,那么它將與名稱開頭具有Underscore的實例變量合成。
嘗試:
NSString *textOut1 = _textOut.text;
self.textOut.text
就是你所需要的。
屬性基本上類似於Java中的類變量,需要使用公共getter和setter。 所以你不能直接在.m文件中使用它,但需要使用getter和setter。 iOS上的Objective C實際上為您提供了這些方法。 因此,當您在引擎蓋下創建屬性時,您擁有自己執行getter和setter的代碼。
您可以將值設置為:
_textOut = BLAHBLAH
得到它:
[self textOut.text]
要么
self.textOut.text
甚至_textOut.text
(這在技術上是textOut
引用的局部變量)
或者在你的情況下,
`NSString *textOut1 = [self textOut.text];`
或NSString *textOut1 = self.textOut.text;
或NSString *textOut1 = _textOut.text;
//這可能是推薦最少的一個。
雖然我相信斯坦福大學的班級表示總是做得更好[self textOut]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.