在头文件中我想声明一个NSInteger数组,最好的方法是什么? 我尝试使用此代码,但会导致错误
@interface test:NSObject
{
}
@property(nonatomic,readwrite)NSInteger f[4]={1,2,3,4}; // Error!!!
@end
答案 0 :(得分:4)
你不能这样做;而是在对象的init
方法中初始化数组并提供自定义的setter / getter:
部首:
@interface test:NSObject
{
NSInteger _f[4];
}
@property(nonatomic,readwrite) NSInteger *f;
@end
实现:
@implementation test
- (id)init {
self = [super init];
if (self) {
_f[0] = 1;
_f[1] = 2;
_f[2] = 3;
_f[3] = 4;
}
return self;
}
- (NSInteger *)f {
return _f;
}
- (void)setF:(NSInteger *)f {
for (NSUInteger i = 0; i < 4; i++)
_f[i] = f[i];
}
@end
答案 1 :(得分:2)
您确定需要一组NSIntegers吗? NSIntegers是一种原始类型;它们不是物体。对于大多数用例,Objective-C中的通常约定是存储NSNrray的NSNumber对象。可以通过在@
符号前添加前缀来将文字编号转换为NSNumber。
在标题中:
@property(nonatomic, strong) NSArray *myArray;
使用init
方法或类似方法:
self.myArray = @[ @1, @2, @3, @4 ];
答案 2 :(得分:0)
int array [100]; 将其创建为全局变量。
在你的.m文件中添加,
@interface MyClass ()
@end
@implementation MyClass{
}
int a[] ={1,2,34};
- (无效)INIT {,.....
尝试NSLog(@“%d”,[1]),它将完美打印。