【发布时间】:2011-07-22 20:50:16
【问题描述】:
所以,我试图在一个类中设置NSString 的值,然后在另一个类中调用NSString 并将其加载到标签中。
我已将Class A 中的字符串声明为非原子的保留属性。在一种方法中,我设置了字符串的值。
在Class B中,我导入Class A、alloc和initClass A,然后我尝试设置标签文本:
ClassA *classA = [[ClassA alloc] init];
label.text = classA.string
但是,每次我这样做时,标签都是空白的。
那么,为什么我的属性没有保留我在方法中分配的值? NSString 在 tableView didSelectRowAtIndexPath 方法中获取它的值。
谢谢!
编辑 我意识到我在输入上面的代码 sn-p 时犯了一个错误,我遗漏了对象“classA”上的属性“string”。对不起。下面的 cmets 有点不必要,但感谢您指出我的错误。作为记录,我知道对象、类和属性是如何工作的。
【问题讨论】:
-
嗯?这没有任何意义。为什么要将类的实例分配给标签的文本属性?您的代码 sn-p 中没有字符串。
-
您有两个不同的 ClassA 实例。每个都有自己的分配给实例变量的任何字符串的副本。因此,创建一个新的 ClassA 不会以任何方式获取存储在 ClassA 的不同实例中的字符串。但除此之外,您上面的代码是无稽之谈-您不能将非字符串(并且“classA”不是字符串)分配给标签文本。
-
(也就是说你不知道你在做什么,你需要回到学校,学习一点关于对象和类的知识。)
标签: objective-c class properties nsstring global