xcode 4.2目标c中的警告

Posted

技术标签:

【中文标题】xcode 4.2目标c中的警告【英文标题】:warnings in xcode 4.2 objective c 【发布时间】:2012-01-24 11:25:20 【问题描述】:

我创建了一个 iPad 应用程序,我在其中从 URL 获取数据, 当我编写此代码时,它会向我显示此警告initWithContentsOfURL is deprecated

这里是代码sn-p,

NSString *mainstr;

NSURL *urlr=[NSURL URLWithString:@"http://abc.com/default.aspx?id=G"];
NSURLRequest *reqr=[NSURLRequest requestWithURL:urlr];
[webViewq loadRequest:reqr];

mainstr=[[NSMutableString alloc]initWithContentsOfURL:urlr]; 

在 tableView 中它也会向我显示这个警告,initWithFrame:reuseIdentifier: is deprecated

这里是代码 sn-p,我在其中每行创建一个标签

static NSString *CellIdentifier=@"Cell"; 

if(cell == nil)


            cell=[[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]autorelease];

            CGRect frame;
            frame.origin.x = 0; 
            frame.origin.y = 0;
            frame.size.height = 40;
            frame.size.width = 180;


            UILabel *capitalLabelI = [[UILabel alloc] initWithFrame:frame];
            capitalLabelI.tag = CapitalTag;
            capitalLabelI.font=[UIFont systemFontOfSize:16.0];


capitalLabelI.text=[@" " stringByAppendingString:[a objectAtIndex:indexPath.row]];

return cell;

当我调用多个参数化方法时,它会向我显示此警告,

方法名:

-(void)recentquote:(NSString *)sym:(int)i

调用语法:

[self recentquote:l3:i];

警告:

Instance method '-recentquote::' not found (return type default to 'id')'

帮帮我!!

提前致谢!

【问题讨论】:

如果您给定的 URL 是实时的,那么请将其删除并放入演示 url... 【参考方案1】:

而不是

initWithContentsOfURL 

使用:

initWithContentsOfFile:encoding:error: 

initWithContentsOfFile:usedEncoding:error: 

而不是

initWithFrame:reuseIdentifier: 

使用:

initWithStyle:reuseIdentifier:

你应该更改以下声明:

-(void)recentquote:(NSString *)sym:(int)i

到:

-(void)recentquote:(NSString *)sym someArg:(int)i

看来您对 Objective-c 和 iPad 开发真的很陌生,我强烈建议您阅读:https://***.com/questions/332039/getting-started-with-iphone-development

【讨论】:

【参考方案2】:

调用语法应该是

[self recentquote:l3 :i];

(注意中间的空格),我建议还是重命名你的函数。

当它说它已被弃用时,它只是意味着在未来的某个时间,Apple 可能会一起删除此方法,不再支持它。所以改变你的

cell = [[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]autorelease];

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                            reuseIdentifier:CellIdentifier] autorelease];

Check the documentation for available style and what it means

编辑:

我建议改变它,也许是

- (void)recentQuote:(NSString *)quote withIndex:(int)index; 

然后调用它使用

[self recentQuote:@"OK" withIndex:2];

【讨论】:

以上是关于xcode 4.2目标c中的警告的主要内容,如果未能解决你的问题,请参考以下文章

xcode 4.6 目标构建设置缺少“Apple LLVM 编译器 4.2 - ...”部分

xcode 4.6 无法显示部署目标 4.2

使用 CocoaPods 时的 Xcode 12 部署目标警告

Xcode 中针对 iOS 7 部署目标的 LaunchImage 警告

单元测试目标中的 xcode RunUnitTests 脚本?

XCode 5 依赖项警告 - 混淆 iOS 部署目标和架构