您可能需要完整的類型,即 @property(nonatomic)BOOL boolArray [100];
[100]是重要的類型信息,而不僅僅是分配多少空間的指示。
此外,我認爲該物業將被視爲無法分配的const BOOL *
,所以它可能必須是readonly
。正確的做法可能是隻讀,這意味着thins將獲取數組指針,然後將其下標以分配給數組成員。
或者你也可以使用NSArray
這個,但是這需要你用NSNumber
s和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
這是一個奇怪的問題。我希望編譯器能夠準確解釋「不能用數組類型聲明屬性」之類的令人不快的事情。
另一個UPDATE
看到這個問題:Create an array of integers property in Objective C
顯然,根據C時的參數,數組是不是一個「普通舊數據」類型和Objective-C的規範只允許聲明POD類型的屬性。據說,這是豆莢definiition:
http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html
但是看完這看上去好像是莢果的陣列是一個POD。所以我不明白。
然後我得到一個「錯誤的屬性聲明」編譯器錯誤 – scud 2010-01-23 19:40:47
這是一個非常糟糕的編譯器錯誤....好吧,請參閱更新。 – Nimrod 2010-01-23 19:43:22
好吧,我會切換,只是使用NSArray - 感謝您的建議 – scud 2010-01-23 19:46:35