1

私は NSDictionary を持っています。そのすべてのオブジェクトとキーを NSString に入れて、最終的に次のようなラベルに表示できるようにします。

キー 1: オブジェクト 1

キー 2: オブジェクト 2

キー3: オブジェクト3

... ... ...

何か案は?

4

4 に答える 4

6

文字列を作成し、それをラベル テキストに設定します。

NSMutableString *myString = [[NSMutableString alloc] init];

[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    [myString appendFormat:@"%@ : %@\n", key, obj];
}];

self.label.text = myString;

ノート

フォーマット指定子の状態に関するドキュメント ( String Programming Guide ) :%@

%@
Objective-C オブジェクト。descriptionWithLocale: が返す文字列として出力されます: 利用可能な場合は、それ以外の場合は説明。CFTypeRef オブジェクトでも機能し、CFCopyDescription 関数の結果を返します。

したがって、これらが辞書内の独自のカスタム オブジェクトである場合は、descriptionメソッドをオーバーライドして、より意味のある出力を提供する必要があります。

アップデート

出力をキーでソートする必要があると述べています-辞書は順序付けられていないため、別の方法で行う必要があります-この例では、キーが文字列であることを前提としています

NSArray *sortedKeys = [[dictionary allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

NSMutableString *myString = [[NSMutableString alloc] init];

for (NSString *key in sortedKeys) {
    [myString appendFormat:@"%@ : %@\n", key, [dictionary objectForKey:key]];
}

self.label.text = myString;
于 2012-06-19T22:10:24.983 に答える
2

これを試して

for(id key in [dictionary allKeys])
{
    id value = [dictionary objectForKey:key];
    NSLog(@"%@ : %@", key, value);
}
于 2012-06-19T21:52:57.107 に答える
1
NSString *row;
for (id key in dictionary) {
    row = [NSString stringWithFormat:"%@: %@", key, [dictionary objectForKey:key]];
    // do something with your row string
}
于 2012-06-19T22:10:33.750 に答える
0

TCTime オブジェクトから 2 つの時間値を追加してラベルに表示しようとしていますが、最後に「\n」を追加しても、最初の値のみが出力され、2 番目の値は出力されません。

_feedTimes は NSArray です。

NSMutableString *myString = [[NSMutableString alloc] init];

TCTime *time = _feedTimes[indexPath.row];

[myString appendFormat:@"%s : %@\n", "Time 1 ", time.Time1];

[myString appendFormat:@"%s : %@\n", "Time 2 ", time.Time2];

self.label.text = myString;
于 2014-06-22T04:30:44.047 に答える