我正在尝试使用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.?!?!?
非常感谢任何帮助。 :)
答案 0 :(得分:6)
TWTweetComposeViewController
方法setInitialText
只接受一个参数,类型为NSString*
。您不能简单地使用NSString
方法NSString
格式化传递给方法的任何和所有stringWithFormat
变量(我想,在那里您已经看到了语法{ {1}})。
在您的情况下,您需要简单地致电:
[NSString stringWithFormat:@"%@", myString]
或致电:
[twitter setInitialText:tweet];
修改强>
为了进一步理解,我觉得有必要添加一个方法,当它的声明以[twitter setInitialText:[NSString stringWithFormat:@"%@", tweet]]
stringWithFormat
)
例如,查看...
的文档会显示NSString
被声明为:
stringWithFormat
同样,+(id) stringWithFormat:(NSString *)format, ...;
中的arrayWithObjects
被声明为:
NSArray
哪一个会使用:
+(id) arrayWithObjects:(id)firstObj, ...;
答案 1 :(得分:0)
尝试[twitter setInitialText:tweet];
如果您确实需要格式化文本来处理更复杂的案例,请尝试
[twitter setInitialText:[NSString stringWithFormat:@"%@", tweet]];
答案 2 :(得分:0)
"[twitter setInitialText:@"@%",tweet];"
你刚刚得到了你的“@”而你是“%”错误的方式应该是
[twitter setInitialText:@"**%@**",tweet];