我有一个自定义类,我想在firstViewController中“加载”,然后通过segues从其他类访问它。我的问题是,我甚至无法访问和更改firstViewController中的实例变量。不知怎的,我正在“加载”它错了。这是我到目前为止使用的代码:
在viewController.h中
@property (strong, nonatomic) myClass *newClass;
@synthesize newClass;
然后我尝试通过以下方式访问它:
self.newClass.string = @"myString";
if(newClass.string == @"myString"){
NSLog(@"didn't work");
}
好吧,我得到“没有用”。这是为什么? 我写的时候
myClass *newClass = [myClass new];
确实有效。但是每次ViewController再次加载时,类及其属性都会被覆盖。
你会推荐什么?非常感谢你。
答案 0 :(得分:2)
就像Kaan说的那样,你忘了初始化你的类,你只是在ViewDidLoad add
上声明并创建了一个指针而不是实际的对象self.newClass = [[myClass alloc] init];
确实有效。但是这个类及其属性会被覆盖 ViewController再次加载的时间。
那是因为每次特定的Viewcontroller加载你都会重新初始化类。
如果你想通过你所有程序的持久化类来寻找单例模式。
当你想要只有一个特定对象的实例时,如果你试图初始化该对象的另一个实例,你就会收到你已经拥有的那个实例。
PD:newClass.string == @“myString”错误。
比较字符串时使用isEqualToString方法。