[英]implicit conversion NSNumber* to int
我有两个视图控制器VC1和VC2。 VC1有一个textField和按钮。 VC2具有NSNumber *类型的属性。
我试图将VC1中文本字段中的值传递给VC2,所以我在VC1中做了以下操作
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:SEGUE_IFENTIFIER_TO_DETAILS_VIEW_CONTROLLER]) {
((DetailsViewController *)
segue.destinationViewController).receivedData =
self.textFieldValueToDispatch.text.intValue;
}
但我收到一条错误消息: implicit conversion on int_nullable
如何解决
NSNumber
是一个对象 int
/ NSInteger
是原始标量类型 两种类型不可互换。
最简单的解决方案是使用ObjC文字从NSInteger
创建一个NSNumber
对象
((DetailsViewController *)segue.destinationViewController).receivedData =
@(self.textFieldValueToDispatch.text.integerValue);
@(123)
与[NSNumber numberWithInteger:123]
将NSString转换为Int
int value = [@"1234" integerValue]; // Int Type
将Int转换为NSNumber
// Using NSNumber methods
NSNumber * number = [NSNumber numberWithInt:1234];
// Using NSNumber literals
NSNumber * number = @(1234);
将字符串转换为NSNumber
// Using NSNumber methods
NSNumber * number = [NSNumber numberWithInt:[@"" integerValue]];
// Using NSNumber literals
NSNumber * number = @([@"" integerValue]);
您的解决方案
((DetailsViewController *) segue.destinationViewController).receivedData =
@([self.textFieldValueToDispatch.text integerValue]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.