【发布时间】:2010-12-10 07:04:23
【问题描述】:
我是一名资深的 .NET 开发人员,我第一次涉足 Objective C 编程。我在使用枚举类型的属性时遇到了困难。一些上下文......我有一个像这样的类头和枚举:
typedef enum {
Open,
Unavailable,
Unknown
} LocationStatus;
@interface Location : NSObject {
LocationStatus status;
}
@property (nonatomic) LocationStatus status;
@end
以及如下所示的实现:
@implementation Location
@synthesize status;
@end
在代码中的某个位置,我将值设置为:
location1.status = Open;
然后调试器将其评估为具有正确的值,并解析为正确的枚举(另请注意,此处未显示其他属性......它们也正确评估)。
稍后在代码中,我尝试像这样读取该属性:
LocationStatus status = location.status;
此时代码中的调试器能够正确评估我的类的所有属性,但Status 除外,它显示的是内存地址,但不是实际值。当执行到这一行时,我一直在控制台中收到 EXC_BAD_ACCESS 错误,并且应用程序崩溃。
我很确定这反映了我对如何在 Objective C(可能是一般的 C)中使用属性和枚举的基本误解。如果有人能对此有所了解,我将不胜感激。
【问题讨论】:
标签: objective-c properties enums