cell.textField.text = [contact valueForKey:formCell.variableName];
我得到的valueForKey是未知类型,它可以是NSNumber,int,float,NSString ..
我想将值转换为NSString。
使用NSString stringWithFormat,应该指定格式说明符,对象的类型在运行时是已知的
答案 0 :(得分:5)
valueForKey:
永远不会返回int
或float
。相反,它会将它们包装到NSNumber
中。详情here。
因此,您可以使用"%@"
在stringWithFormat:
中表示这些内容。
您也可以使用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 *。
在某些情况下甚至会为您自动调用。
答案 4 :(得分:-1)
cell.textField.text = [NSString stringWithFormat:@"%@",[contact valueForKey:formCell.variableName]];