将任何数据类型转换为NSString

时间:2012-01-11 09:08:53

标签: iphone objective-c ios

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

我得到的valueForKey是未知类型,它可以是NSNumber,int,float,NSString ..

我想将值转换为NSString。

使用NSString stringWithFormat,应该指定格式说明符,对象的类型在运行时是已知的

5 个答案:

答案 0 :(得分:5)

  1. valueForKey:永远不会返回intfloat。相反,它会将它们包装到NSNumber中。详情here

  2. 因此,您可以使用"%@"stringWithFormat:中表示这些内容。

  3. 您也可以使用description这样的NSObject方法:[[contact valueForKey:formCell.variableName] description]

答案 1 :(得分:4)

有一条-description消息适用于来自NSObject的任何对象:

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

使用%@格式说明符在后台调用-description,以便两者大致相同,只有直接-description调用更短且可能更有效。

答案 2 :(得分:2)

您可以尝试使用描述方法:

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

通常,它实现为字符串,表示对象的值

答案 3 :(得分:1)

description:是一个可以在任何NSObject上调用的方法,它应该返回描述文本的NSString *。

  

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

在某些情况下甚至会为您自动调用。

答案 4 :(得分:-1)

cell.textField.text = [NSString stringWithFormat:@"%@",[contact valueForKey:formCell.variableName]];