web-dev-qa-db-ja.com

NSString stringWithFormat

ここで何が欠けているのかわかりません。 [NSString stringWithFormat]関数を使用して文字列を連結しようとしています。これは私がやっていることです。

NSString *category = [row objectForKey:@"category"];
NSString *logonUser = [row objectForKey:@"username"];
user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser];

ここでの問題は、常に1つの変数しか出力しないことです。カテゴリに「Sports」があり、logonUserに「Leo」がある場合は、「In Sports」と出力され、残りのテキストはスキップされます。 「In Sports by Leo」と印刷する必要があります。

16
Leo

userはUILabelですか?テキストが折り返されたり、切り取られたりしていないことを確認してください。 UILabelを大きくしてみてください。

15
lucius

あなたは試す必要があります:

NSlog(@"In %@ by %@", category, logonUser);

問題をチェックするには!デバッガーコンソールXDの結果を教えてください

6
Ivan Carosati

コードは正しいように見えます:

たまたま、カテゴリ変数にキャリッジリターンまたは余分な空白が表示されていますか?小さなラベルの場合、文字列全体が表示されない場合があります。 3行目の2つの変数を入れ替えて、出力を確認してください。

「by」でさえ出力にないことに困惑しています。カテゴリー変数の値がテキストを隠しているような気がします。

1

このコードの最初の行のポイントは何ですか? 3行目とは関係ない?

カテゴリとlogonUserの両方がコードに入力されていることを100%確信していますか?おそらく、user.text =行の直後にNSLogステートメントを配置し、3行目が正常に見えるため、期待した値が含まれていることを確認してください。

編集

変えてみる

user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser];

user.text = [NSString stringWithFormat:@"In %@ by %@", @"category", @"logonUser"];

そして、それがIn category by logonUser。それは確かに私には正しいように見えるので。

0
jamone