ここで何が欠けているのかわかりません。 [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」と印刷する必要があります。
user
はUILabelですか?テキストが折り返されたり、切り取られたりしていないことを確認してください。 UILabelを大きくしてみてください。
あなたは試す必要があります:
NSlog(@"In %@ by %@", category, logonUser);
問題をチェックするには!デバッガーコンソールXDの結果を教えてください
コードは正しいように見えます:
たまたま、カテゴリ変数にキャリッジリターンまたは余分な空白が表示されていますか?小さなラベルの場合、文字列全体が表示されない場合があります。 3行目の2つの変数を入れ替えて、出力を確認してください。
「by」でさえ出力にないことに困惑しています。カテゴリー変数の値がテキストを隠しているような気がします。
このコードの最初の行のポイントは何ですか? 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
。それは確かに私には正しいように見えるので。