繁体   English   中英

错误:索引表达式无效,因为下标类型'char *(*)(const char *,int)'不是整数或OBjective-C指针类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM