我对Objective C很新。继续收到此错误
"Use of undeclared identifier"
这段代码:
NSString *textOut1 = textOut.text;
显然我只是想拉动文本框文本。我在我的文件
中声明了以下内容@property (weak, nonatomic) IBOutlet UITextField *textOut;
所以我无法理解为什么我一直得到那该死的错误。谢谢!
答案 0 :(得分:4)
答案 1 :(得分:3)
要访问变量textOut
引用的对象的属性someVariable
,请编写someVariable.textOut
。因此,要访问textOut
对象的属性self
,请编写self.textOut
。在这种情况下,您省略了所有者 - self
。
答案 2 :(得分:2)
如果你不是(@synthesize)自己合成属性,那么它将与名称开头有一个Underscore的实例变量合成。
尝试:
NSString *textOut1 = _textOut.text;
答案 3 :(得分:2)
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]
总是更好。