зацикливаясь, хотите распечатать информацию о массиве объектов словаря в конце цикла - PullRequest
2 голосов
/ 06 февраля 2011

Это может быть несколько вопросов, связанных в один, но вот ситуация.Я работаю с целью c, и у меня есть цикл for, который проходит через массив объектов словаря ... вот так.

  for (NSDictionary *dictionary in array){
         log(@"the dictionary object looks like this \n%@\n",dictionary);
         log(@"value of someProp in the current dict object is %@",[dictionary valueForKey:@"someProp"]);
  }

хорошо, это все красиво и модно, но я хочу привести в порядок, как это печатаетк консоли немного.Я новичок в цели c, но опыт работы на других языках.Я хочу сделать что-то подобное в цели c (например, записал это в actionscript)

  var outputString:String;

  for (items in dictionary){
     outputString += dictionary.toString();
     outputString += "value of item in current dict object is " + dictionary [item];// etc

  }

  // now just print out the contents of outputString;
  trace(outputString);

Проблема, с которой я здесь сталкиваюсь, заключается в сопоставлении объектов, которые не имеют тип string или NSString ..

Я знаю такие вещи, как

  NSString *outputString = @"";

  for (//same loop as above in obj-c){
      outputString = [outputString stringByAppendingString:**someString**];

  }

, но, может быть, я просто незнаком с соответствующим строковым методом, потому что просто подставляю dictionary , чтобы распечатать весь объект словаря, где он читает someString выдаст ошибку, потому что, конечно, объект словаря не является строкой.

Так что я хотел бы

- накопить содержимое того, что я хотел бы вывести из NSLog всерия строк, суммирующих все это

- это включает в себя распечатку содержимого объектов словаря (или, возможно, объектов массива), преобразование его в строку и добавление его в outputString.

У кого-нибудь есть совет, как это сделать?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2011

Вы можете написать сериализованную версию NSDictionary путем ...

NSLog(@"%@", dictionaryItem);

при условии, что ваш экземпляр NSDictionary имеет имя dictionaryItem.

Будет выведен объект словаря, похожий на ...

{
    key1 = test;
    key2 = 1;
    key3 =     (
        blah
    );
}
1 голос
/ 06 февраля 2011

Попробуйте использовать [NSString stringWithFormat: @ "Что-то о значении:% @", dictionaryItem]

...