objective-c - 方法调用的参数太多

标签 objective-c iphone xcode compiler-errors arguments

我正在尝试使用我的 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。?!?!?

任何帮助是极大的赞赏。 :)

Screenshot

最佳答案

TWTweetComposeViewController方法setInitialText只接受一个参数,类型为 NSString* .您不能简单地格式化任何和所有 NSString变量传递给一个方法,你可以使用 NSString方法stringWithFormat (我想,你已经看到了 [NSString stringWithFormat:@"%@", myString] 的语法)。

在您的情况下,您需要简单地调用:

[twitter setInitialText:tweet];

或调用:
[twitter setInitialText:[NSString stringWithFormat:@"%@", tweet]]

编辑
我觉得有必要补充一点,以加深您的理解,当声明以 stringWithFormat 结尾时,方法只接受可变数量的参数(例如 ... )

例如,在文档中查找 NSString显示 stringWithFormat被声明为:
+(id) stringWithFormat:(NSString *)format, ...;

同样,arrayWithObjectsNSArray被声明为:
+(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/

相关文章:

ios - tableView :indexPathForCell returns nil when clicking in cell

ios - 在 ios 中从服务器下载图像时显示启动画面

php - Cocoa Mac App Webview session 丢失

推送或弹出新 View Controller 时,iOS 7 自定义 UINavigationBar TitleView 移动

ios - 从 NSString IOS 中删除 "?"

ios - UIImage 未使用带有动画 block 过渡的淡入淡出进行过渡

objective-c - 调试运行时错误: 'NSInternalInconsistencyException' ,原因: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath'

iphone - 在iOS中流畅播放声音

iphone - 输入元素上的填充在移动 safari(iphone)上无法按预期工作

xcode - 自定义键盘 : How to Paste Image from pasteboard into messages. app MMS ios8