[英]Error: Indexing expression is invalid because subscript type 'NSUInteger' is not an integral or objective c pointer type
[英]Error: indexing expression is invalid because subscript type 'char *(*)(const char *, int)' is not an integral or OBjective-C pointer type
我有一个简单的drawRandom卡方法...它将返回一个指向卡的指针
-(卡片*)drawRandomCard {
Card * randomCard = nil;
if ([self.cards count]){
unsigned index = arc4random_uniform ([self.cards count]);
//return it
randomCard = self.cards[index]; // if I return randomCard I won't get an error!
[self.cards removeObjectAtIndex:index];
}
return self.cards[index];
}
-如果我这样编写代码,则会收到提到的错误。
-如果我返回randomCard,则不会出现任何错误。
-我尝试将索引更改为NSInteger,int,NSUInteger,但是没有一个起作用。
-尽管唯一对我有用的是将索引定义为指针,例如@property (nonatomic,assign) NSUInteger index
。 我不明白为什么这样做会有所帮助,而且我认为我应该能够按照我的意愿去做。
我看到了这个问题和这个问题,但是他们的问题是他们的索引不是原始类型,而是指针,但是这里的索引是整数,所以我仍然很困惑。
任何帮助表示赞赏。
你的index
在return语句是不是在相同的范围内的index
if语句。 它是指向全局函数index()
的指针,该index()
不是有效的下标。
使index
成为属性是可行的,因为它会将其拉到您的退还可以看到它的范围内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.