目标C:无法运行下载问题

时间:2014-08-08 04:23:16

标签: objective-c

我是Xcode objective-c的新手,我的任务是制作可下载的简报。 所以,我得到了一些源代码并稍微调整一下,但我得到了一些错误,说

“隐式转换失去整数精度:'long'到'int'

这是我的代码

-(void)downloadIssue:(IssueInfo*)issueInfo{

    NewsstandDownloader* downloader = [[AppDelegate instance] newsstandDownloader];
    downloader.delegate = self;

    long index = [self.publisher indexOfIssue:issueInfo];
    [downloader downloadIssue:issueInfo forIndexTag:index]; <-- Error
}

请帮帮我。 谢谢。

1 个答案:

答案 0 :(得分:0)

这只是一个编译器警告而且是一个温和的。如果您正在处理的文档超过32000页,那么您可能需要关注它。

解决问题的方法是将要调用的函数的声明更改为:

[downloader downloadIssue:(IssueInfo *)issueInfo forIndexTag:(long)index]

或者,只需使用演员:

int index = (int)[self.publisher indexOfIssue:issueInfo];

int”在Objective C中通常不是一件好事,因为在不同平台上有不同的长度和容量(32位与64位,iOS与MacOS等)。最好使用更具有Objective-C的东西,比如NSInteger或NSUInteger。