问题分配从[array objectAtIndex:]获得的值

时间:2011-08-19 20:46:39

标签: objective-c arrays

在我的钢琴课中,我有一个属性(Keys是另一个自定义类)

@property (nonatomic, retain) Keys *lastPlayed;

在我的一个钢琴方法中,我使用Key对象数组中的对象设置lastPlayed的值。

self.lastPlayed = [allKeys objectAtIndex:variable];

上面的代码行会导致程序崩溃。

我注意到如果我从allKeys数组硬编码特定的Key对象,那么它可以正常工作。像这样:

self.lastPlayed = keyC;

有趣的是,如果我将崩溃的代码放入不同的方法中,它就不会崩溃。

如何防止崩溃?

编辑:

我在Keys类中调用此方法,其中我的钢琴是委托

[delegate deliverTagwithNameTag:self.tag]
然后钢琴响应

- (void) deliverTagwithNameTag:(int)nameTag {

self.lastPlayed = [allKeys objectAtIndex:nameTag];

}

1 个答案:

答案 0 :(得分:0)

你可能没有得到明显无法解释的崩溃,你可能会提出异常。您可以查看控制台以找出您引发的异常。通常情况下,在这种情况下告诉你要么数组是否有超出范围的值(如果variable以某种方式收集了不正确的值可能会发生这种情况),那将是有用的。数组本身无效(可能是内存分配问题)或者返回的东西不能存储为lastPlayed(这通常表示你在setter中做了一些自定义的事情并且得到了一个意想不到的类型类)。

因此,为了防止崩溃,请检查您的控制台并查找其中一个问题。

相关问题