我正在尝试使用我的 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];
问题是,twitter setInitialText 是否存在错误,即方法调用的参数太多,预期为 1,有 2。?!?!?
任何帮助是极大的赞赏。 :)
最佳答案
TWTweetComposeViewController
方法setInitialText
只接受一个参数,类型为 NSString*
.您不能简单地格式化任何和所有 NSString
变量传递给一个方法,你可以使用 NSString
方法stringWithFormat
(我想,你已经看到了 [NSString stringWithFormat:@"%@", myString]
的语法)。
在您的情况下,您需要简单地调用:
[twitter setInitialText:tweet];
或调用:
[twitter setInitialText:[NSString stringWithFormat:@"%@", tweet]]
编辑
我觉得有必要补充一点,以加深您的理解,当声明以
stringWithFormat
结尾时,方法只接受可变数量的参数(例如 ...
)例如,在文档中查找
NSString
显示 stringWithFormat
被声明为:+(id) stringWithFormat:(NSString *)format, ...;
同样,
arrayWithObjects
在 NSArray
被声明为:+(id) arrayWithObjects:(id)firstObj, ...;
哪个会使用:
NSString* myString1 = @"foo";
NSString* myString2 = @"bar";
NSNumber* myNumber = [NSNumber numberWithInt:42];
NSArray* myArray = [NSArray arrayWithObjects:myString1, myString2, myNumber, nil];
关于objective-c - 方法调用的参数太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405837/