你如何声明,设置属性,合成,和执行大小为5的目标C int数组?我正在写一个iPhone应用程序的代码。感谢。

有帮助吗?

解决方案

我觉得“可可-Y”的事情是隐藏,即使你使用它内部的int数组。是这样的:

@interface Lottery : NSObject {
    int numbers[5];
}

- (int)numberAtIndex:(int)index;
- (void)setNumber:(int)number atIndex:(int)index;
@end

@implementation Lottery

- (int)numberAtIndex:(int)index {
    if (index > 4)
        [[NSException exceptionWithName:NSRangeException reason:[NSString stringWithFormat:@"Index %d is out of range", index] userInfo:nil] raise];
    return numbers[index];
}

- (void)setNumber:(int)number atIndex:(int)index {
    if (index > 4)
        [[NSException exceptionWithName:NSRangeException reason:[NSString stringWithFormat:@"Index %d is out of range", index] userInfo:nil] raise];
    numbers[index] = number;
}

其他提示

下面是一些尝试。在h文件:

@property int* myIntArray;

然后,在.m文件:

@synthesize myIntArray;

如果你使用@synthesize,你需要的malloc /数组自己释放calloc,初始化大概在()。

另外,你可以写自己的存取功能,并让他们的malloc /释放calloc如果阵列已分配之前调用。

无论哪种方式,你要释放阵列中的dealloc()方法。

这可能是幼稚和错误的,因为我只是在斜坡上升对目标C自己,但到目前为止,这似乎是为我工作。

如果你想使用数组你不应该在这种情况下使用int。使用的NSNumber和把这些5个NSNumbers成一个NSMutableArray。

@interface testClass: NSObject {
     NSMutableArray* numbers;
}
@property (nonatomic, retain) NSMutableArray* numbers;
-(id)initWithValue:(NSNumber *)initialValue;
@end


@implementation testClass
@synthesize numbers;
-(id)initWithValue:(NSNumber *)initialValue {
     numbers = [[NSMutableArray alloc] initWithCapacity:5];
     [numbers addObject:initialValue];
     return self;
 }
@end

是接口和实现与合成(未BTW测试)的代码。什么是你要完成?

好快速前奏

我有一个类变量:

NSInteger myInt[5];

,这样我可以使用普通的敏[1] = 0的语法在我的代码,我创建的返回一个整数指针一个属性:

@property (nonatomic, readonly) NSInteger *myInt;

然后创建以下getter方法:

-(NSInteger *) myInt {
  return myInt
}

现在我可以使用像class.myInt [1] = 0;

好了,我不知道这肯定的作品,但它似乎。我只是觉得应该把这个在那里,如果别人想尝试一下。

不管你做什么,你必须知道的后果。

一个整数阵列未被引用计数。你不知道有多少人访问它。你不知道谁应该释放它和时间。所以,你可以很容易有一个int类型的属性*。 setter方法将采取一个指针,并将其存储到实例变量。吸气将返回实例变量的内容。这只是工作。

然而,你不知道什么时候该阵列应分配或释放。如果你有一些静态数组(例如包含数字的四个不同的表),没有问题。但是,如果你创建一个整数使用malloc数组(),有人应该释放()它。所以,当这是怎么回事发生?

由于不必手动处理的阵列的寿命是垃圾,我建议你要么只是使用的NSNumber的一个NSArray,或你看NSPointerArray其可以被滥用于整数的存储阵列,参考计数,或你创建自己的类象在前面的回答彩民类,只是一个更灵活一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top