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は、型が1つの引数のみを取りますNSString*NSStringメソッドでできるように、メソッドに渡されるすべての変数をNSString単純にフォーマットすることはできませんstringWithFormat(つまり、構文を見た場所で想像します[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];"

you just got your "@" and your "%" the wrong way round it should be

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

試す[twitter setInitialText:tweet];

より複雑なケースでフォーマットされたテキストが本当に必要な場合は、

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

于 2012-05-01T23:44:55.623 に答える