【问题标题】:Synthesize a BOOL to set value in Objective C在 Objective C 中合成一个 BOOL 来设置值
【发布时间】:2010-01-24 13:57:17
【问题描述】:
我在我的核心数据实体中创建了一个名为“useSystem”的 BOOL 属性。此外,为了让我获取/设置数据,我创建了一个对象,但是每当我尝试设置合成的 BOOL 时,都会出现总线错误。这是我的代码:
@property (nonatomic) const BOOL useSystem;
所以我在做
[object setUseSystem:YES];
我立即得到总线错误。有人可以帮忙吗?
【问题讨论】:
标签:
iphone
objective-c
boolean
【解决方案1】:
使用[NSNumber numberWithBool:YES]
【解决方案2】:
实际上使用 NSNumber 作为属性类型可能更好。当您在 xcode 中使用模型编辑器向实体添加布尔属性时,也会发生这种情况。正在进行“自动装箱”,但是当我只使用更高级别的 Objective-C 类型和 NSNumber 之类的包装器时,我的麻烦似乎总是更少。
【解决方案3】:
如果您显式声明该方法,这应该可以工作,但它可能不适用于@synthesize。好像我以前做过这个,但也许我只是使用了没有 mutator 方法的 BOOL。 (如果您定义了@property 声明的方法,则可以在不使用@synthesize 的情况下使用@property。)