我是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
}
请帮帮我。 谢谢。
答案 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。