Конвертировать любой тип данных в NSString - PullRequest
1 голос
/ 11 января 2012
cell.textField.text = [contact valueForKey:formCell.variableName];

ValueForKey, который я получаю, имеет неизвестный тип, это может быть NSNumber, int, float, NSString ..

Я хочу преобразовать значение в NSString.

, используяNSString stringWithFormat, должен указывать спецификатор формата, тип объекта известен во время выполнения

Ответы [ 5 ]

5 голосов
/ 11 января 2012
  1. valueForKey: никогда не вернется int или float.Вместо этого он обернет их в NSNumber с.Подробности здесь .

  2. Следовательно, вы можете использовать "%@" для представления их в stringWithFormat:.

  3. Youможно также использовать description метод NSObject, например: [[contact valueForKey:formCell.variableName] description].

4 голосов
/ 11 января 2012

Существует сообщение -description, которое работает с любым объектом, произошедшим от NSObject:

cell.textField.text = [[contact valueForKey:…] description];

Использование спецификатора формата %@ вызывает -description в фоновом режиме, так что они в основном эквивалентны, только прямой вызов -description короче и, вероятно, эффективнее.

2 голосов
/ 11 января 2012

вы можете попробовать использовать метод описания:

cell.textField.text = [[contact valueForKey:formCell.variableName] description];

обычно он реализован в виде строки, представляющей значение объекта

1 голос
/ 11 января 2012

description: это метод, который вы можете вызвать на любом объекте NSO, который должен вернуть NSString * текста описания.

http://developer.apple.com/library/mac/ipad/#documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html

Есть некоторыеслучаи, когда он даже будет вызываться автоматически для вас.

0 голосов
/ 11 января 2012
cell.textField.text = [NSString stringWithFormat:@"%@",[contact valueForKey:formCell.variableName]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...