正确加载自定义类

时间:2012-06-23 08:31:56

标签: objective-c xcode class instance

我有一个自定义类,我想在firstViewController中“加载”,然后通过segues从其他类访问它。我的问题是,我甚至无法访问和更改firstViewController中的实例变量。不知怎的,我正在“加载”它错了。这是我到目前为止使用的代码:

在viewController.h中

@property (strong, nonatomic) myClass *newClass;
在viewController.m中

@synthesize newClass;

然后我尝试通过以下方式访问它:

self.newClass.string = @"myString";
if(newClass.string == @"myString"){
  NSLog(@"didn't work");
}

好吧,我得到“没有用”。这是为什么? 我写的时候

myClass *newClass = [myClass new];

确实有效。但是每次ViewController再次加载时,类及其属性都会被覆盖。

你会推荐什么?非常感谢你。

1 个答案:

答案 0 :(得分:2)

就像Kaan说的那样,你忘了初始化你的类,你只是在ViewDidLoad add

上声明并创建了一个指针而不是实际的对象
self.newClass = [[myClass alloc] init];
  

确实有效。但是这个类及其属性会被覆盖   ViewController再次加载的时间。

那是因为每次特定的Viewcontroller加载你都会重新初始化类。

如果你想通过你所有程序的持久化类来寻找单例模式。

当你想要只有一个特定对象的实例时,如果你试图初始化该对象的另一个实例,你就会收到你已经拥有的那个实例。

PD:newClass.string == @“myString”错误。

比较字符串时使用isEqualToString方法。