2

我是 iOS 编程新手,在类继承方面遇到了一些问题。

我有一个带有对象的类(在 .h 中初始化为属性)

@property (nonatomic, weak) NSNumber *count;

在特定功能中按下的每个按钮都会增加。

在另一个类中,我引用它:

#import "otherClass.h"
...
otherClass *otherC = [[otherClass alloc]init];
NSLog(@"COUNT: %@", otherClass.count);

无论我如何尝试,输出仍然为空。我不确定我是否执行错误。请帮忙!

**找到解决方案

(1) 定义一个新类,将其命名为 RSModel (2) 将 @property (nonatomic) NSInteger 计数连同您定义的实例方法一起移动到该新类中。实例方法需要更改返回RSModel (3) 在所有需要访问计数的视图控制器中,包含“RSModel.h”,并写入[RSModel instance].count 以访问共享计数器。

4

2 回答 2

4

当你定义一个属性weak时,这意味着至少存在一个对同一个对象的强引用,这会阻止它被释放。您的情况似乎并非如此。此外,它看起来并不像您需要的那样NSNumber-NSInteger应该足够了。在这种情况下,您无需担心弱/强的区别:

@property (nonatomic) NSInteger count;

...
therClass *otherC = [[otherClass alloc]init];
NSLog(@"COUNT: %d", otherClass.count);

但是请注意,由于count是实例属性,因此需要在otherClass. 该类的所有新对象都将其count属性设置为默认值零。

于 2013-11-12T15:20:31.760 回答
3

通过声明你@property的弱者,你是说其他人拥有该对象,如果没有其他人指向它,则自动释放它并将其设置为 nil。我猜这不是你想做的。尝试将其更改为:

@property (nonatomic, strong) NSNumber *count;
于 2013-11-12T15:20:26.137 回答