您可能需要完整类型,即
@property(非原子)BOOL boolArray[100];
[100] 是重要的类型信息,而不仅仅是指示要分配多少空间。
另外,我认为该房产将被视为const BOOL *
无法分配,所以可能必须是readonly
。正确的做法可能是使其只读,这意味着 Thins 将获取数组指针,然后将其下标以分配给数组的成员。
或者,您可以使用NSArray
为此,但这需要您使用NSNumber
与 boolVaules 相比,这更像是一个混蛋。
UPDATE
实际上,由于某种原因,愚蠢的编译器不喜欢 [] 。尝试这个:
@interface TestClass : NSObject {
const BOOL *boolArray;
}
@property (nonatomic, readonly) const BOOL *boolArray;
@end
@implementation TestClass;
- (const BOOL *)boolArray {
if (!boolArray)
boolArray = malloc(sizeof(BOOL) * 100);
return boolArray;
}
- (void)dealloc {
[super dealloc];
free((void *)boolArray);
}
@end
另一个更新
这编译:
@interface TestClass : NSObject {
BOOL boolArray[100];
}
@property (nonatomic, readonly) const BOOL *boolArray;
@end
@implementation TestClass;
- (const BOOL *)boolArray {
return boolArray;
}
@end
这是一个奇怪的问题。我希望编译器能够准确解释它不满意的地方,例如“无法用数组类型声明属性”之类的东西。
另一个更新
看这个问题:在 Objective C 中创建整数属性数组 https://stackoverflow.com/questions/476843/create-an-array-of-integers-property-in-objective-c
显然,根据 C 规范,数组不是“普通旧数据”类型,并且 Objective-C 规范只允许您声明 POD 类型的属性。大概这就是 POD 的定义:
http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html
但读起来似乎 POD 数组就是一个 POD。所以我不明白。