首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么NSObject返回int,隐式强制转换错误?指针问题w/ ARC?

为什么NSObject返回int,隐式强制转换错误?指针问题w/ ARC?
EN

Stack Overflow用户
提问于 2016-07-21 20:04:49
回答 1查看 107关注 0票数 0

我有一个返回Card* NSObject的方法(为了明确,这是我自己发明的一个对象,我在Card.h和Card.m中正确而成功地定义了这个对象):

代码语言:javascript
运行
复制
-(Card*)readCardFromArrayWithCustomObjFromUserDefaults:(NSIndexPath *)indexPath;
{
    NSData *existingData = [[NSUserDefaults standardUserDefaults] objectForKey:@"Deck"];
    // if no such data exists, return nil
    if (existingData == nil)
        return nil;
    NSArray *existingDeck = [NSKeyedUnarchiver unarchiveObjectWithData:existingData];
    return [existingDeck objectAtIndex:indexPath.row];
}

在我看来,这显然应该返回一个Card*,但是,当我从另一个方法调用它时,如下所示:

代码语言:javascript
运行
复制
Card* selectedCard = readCardFromArrayWithCustomObjFromUserDefaults(indexPath);

我收到警告:

弧不允许隐式“int”到“Card*”的转换

我想,问题可能是在返回之前我并没有将其转换为Card*,但是如果我将readCardFromArrayWithCustomObjFromUserDefaults方法显式转换为此,则仍然会收到相同的警告:

代码语言:javascript
运行
复制
Card* thisCard = [existingDeck objectAtIndex:indexPath.row];
return thisCard;

为了明确起见,我知道这确实返回了一个Card*,因为当我将相同的代码放入调用它的函数(而不是将其分离到自己的readCardFromArrayWithCustomObjFromUserDefaults方法中)时,就会得到Card*。我试图通过将这个使用过的代码部分放入它自己的方法来精简我的代码,并对它为什么不能工作感到困惑。

我尝试返回我的卡片的整个NSArray*,但这会导致同样的警告(只是隐式转换到NSArray*而不是“Card*”)。对于此警告的现有答案,如thisthis,似乎与我的情况无关(除非我真的遗漏了什么)。

关于可能发生的事情,我有两个想法:

  1. 也许为了填充UITableView而在其他地方访问这些数据的事实在某种程度上扰乱了指针或其他东西。
  2. 也许ARC在我还不能使用我的卡之前就已经在使用它了(这听起来很可能是因为编译器似乎认为我明显的Card*返回方法返回一个int,这让我觉得我得到了一个指针,而我的代码由于某种原因不明白指针指向一个Card*)。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 20:15:19

我觉得自己太愚蠢了。再说一遍,堆叠溢出是一个让你感到愚蠢的地方。问题是我在c和C#中的编码时间太长了,所以我错误地调用了该方法。我应该写的是:

代码语言:javascript
运行
复制
Card* thisCard = [self readCardFromArrayWithCustomObjFromUserDefaults:indexPath];

而不是:

代码语言:javascript
运行
复制
Card* selectedCard = readCardFromArrayWithCustomObjFromUserDefaults(indexPath);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38513394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档