Ios NSNumber*到int的隐式转换
我有两个视图控制器VC1和VC2。VC1有一个文本字段和按钮。VC2的属性类型为NSNumber* 我试图将VC1中文本字段中的值传递给VC2,因此我在VC1中执行了以下操作Ios NSNumber*到int的隐式转换,ios,objective-c,Ios,Objective C,我有两个视图控制器VC1和VC2。VC1有一个文本字段和按钮。VC2的属性类型为NSNumber* 我试图将VC1中文本字段中的值传递给VC2,因此我在VC1中执行了以下操作 - (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:SEGUE_IFENTIFIER_TO_DETAILS_VIEW_CONTROLLER]) {
- (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;
}
但是我收到一个错误,它说:int\u nullable上的隐式转换
如何解决它
是一个对象NSNumber
/int
是一种基本标量类型NSInteger
NSInteger
创建一个NSNumber
对象
((DetailsViewController *)segue.destinationViewController).receivedData =
@(self.textFieldValueToDispatch.text.integerValue);
@(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);
// Using NSNumber methods
NSNumber * number = [NSNumber numberWithInt:[@"" integerValue]];
// Using NSNumber literals
NSNumber * number = @([@"" integerValue]);
将字符串转换为NSNumber
// Using NSNumber methods
NSNumber * number = [NSNumber numberWithInt:1234];
// Using NSNumber literals
NSNumber * number = @(1234);
// Using NSNumber methods
NSNumber * number = [NSNumber numberWithInt:[@"" integerValue]];
// Using NSNumber literals
NSNumber * number = @([@"" integerValue]);
您的解决方案
((DetailsViewController *) segue.destinationViewController).receivedData =
@([self.textFieldValueToDispatch.text integerValue]);
将此segue.destinationViewController).receivedData=self.textFieldValue更改为Dispatch.text.intValue;到segue.destinationViewController).receivedData=[self.textFieldValueToDispatch.text intValue];并确保您的receivedData为int-typereceived数据的类型为NSNumber*,我使用了您的解决方案,但它不起作用什么不起作用?编译错误?运行时错误?什么错误?当然,只有文本字段包含数值时,转换才会起作用。您的答案是正确的,但如果您编辑您的答案并解释
@(…)
正在执行的操作,则会对其他人有所帮助。