1 iphone xcode arguments compiler-errors objective-c
我正在尝试使用appDelegate中的NSString设置twitter消息应该在我的应用中说的内容的初始文本.看看这里的代码:
NSString *tweet;
tweet=[MyWebFunction tweet:appDelegate.stadium_id];
if([deviceType hasPrefix:@"5."]){
// Create the view controller
TWTweetComposeViewController *twitter = [[TWTweetComposeViewController alloc] init];
[twitter setInitialText:@"@%",tweet];
Run Code Online (Sandbox Code Playgroud)
问题是,在twitter setInitialText中是否存在错误,即方法调用的参数太多,预期为1,有2.?!?!?
任何帮助是极大的赞赏.:)

该TWTweetComposeViewController方法setInitialText只接受一个参数,属于类型NSString*.您不能简单地格式化NSString传递给方法的任何和所有变量,就像您可以使用该NSString方法一样stringWithFormat(我想,您已经看到了语法[NSString stringWithFormat:@"%@", myString]).
在您的情况下,您需要简单地调用:
[twitter setInitialText:tweet];
Run Code Online (Sandbox Code Playgroud)
或致电:
[twitter setInitialText:[NSString stringWithFormat:@"%@", tweet]]
Run Code Online (Sandbox Code Playgroud)
编辑
我认为有必要添加,以进一步理解,一个方法只有stringWithFormat在其声明结束时才采用可变数量的参数(例如)...
例如,看在文档的NSString显示,stringWithFormat被宣布为:
+(id) stringWithFormat:(NSString *)format, ...;
Run Code Online (Sandbox Code Playgroud)
同样,arrayWithObjectsin NSArray声明如下:
+(id) arrayWithObjects:(id)firstObj, ...;
Run Code Online (Sandbox Code Playgroud)
哪一个会用到:
NSString* myString1 = @"foo";
NSString* myString2 = @"bar";
NSNumber* myNumber = [NSNumber numberWithInt:42];
NSArray* myArray = [NSArray arrayWithObjects:myString1, myString2, myNumber, nil];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4711 次 |
| 最近记录: |