1

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

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

截屏

4

3 回答 3

6

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

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

[twitter setInitialText:tweet];

或致电:

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

编辑
我觉得有必要补充一点,以加深您的理解,当方法stringWithFormat的声明以...

例如,在文档中寻找这样声明的NSString揭示:stringWithFormat

+(id) stringWithFormat:(NSString *)format, ...;

同样,arrayWithObjectsinNSArray被声明为:

+(id) arrayWithObjects:(id)firstObj, ...;

哪个会使用:

NSString* myString1 = @"foo";
NSString* myString2 = @"bar";
NSNumber* myNumber = [NSNumber numberWithInt:42];
NSArray* myArray = [NSArray arrayWithObjects:myString1, myString2, myNumber, nil];
于 2012-05-01T23:47:06.527 回答
0

尝试[twitter setInitialText:tweet];

如果您确实需要格式化文本来处理更复杂的情况,请尝试

[twitter setInitialText:[NSString stringWithFormat:@"%@", tweet]];

于 2012-05-01T23:44:55.623 回答
0
"[twitter setInitialText:@"@%",tweet];"

你只是把你的“@”和你的“%”弄错了

[twitter setInitialText:@"**%@**",tweet];
于 2012-09-25T15:17:58.633 回答