将UITextField标记转换为字符串

时间:2012-01-09 16:51:04

标签: iphone objective-c ios

这给了我一个错误,“Bad Reciever type'NSIntegar'(又名'int')。

    NSString *tempTag = [((UITextField *)[self.dataSetDictionary objectForKey:key]).tag stringValue];

尝试将uitextfield的标记强制转换为字符串。我可以使用[NSString stringWithFormat],只是无法弄清楚为什么这种方式不起作用。

3 个答案:

答案 0 :(得分:4)

您必须使用stringWithFormat:

UITextField *textField = (UITextField *)[self.dataSetDictionary objectForKey:key];
NSString *tempTag = [NSString stringWithFormat:@"%d", textField.tag];
  

只是无法弄清楚为什么这种方式不起作用。

因为tag是标量整数而不是对象。您无法将stringValue等消息发送给非对象。

答案 1 :(得分:2)

tag是NSInteger数据类型的UIView对象的属性。您无法将消息传递给它。应stringValue调用NSNumber。你应该做的是

NSString *tempTag=(NSString*)[[NSNumber numberWithInt:[(UITextField*)[self.dataSetDictionary objectForKey:key] tag]] stringValue];

答案 2 :(得分:-3)

NSIntegers不是对象

more info