繁体   English   中英

使用ARC不允许将int隐式转换为NSNumber

[英]iOS Implicit conversion of int to NSNumber is disallowed with ARC

在下面的代码我得到错误消息:ARC不允许将'int'隐式转换为'NSNumber *'。

我错了什么?

<pre>
 <code>
  NSDictionary *results = [jsonstring JSONValue];
  NSNumber *success = [results objectForKey:@"success"]; // possible values for "success": 0 or 1

   if (success == 1) { // ERROR implicit conversion of int to NSNumber disallowed with ARC    
   }
 </code>
</pre>

感谢您的帮助或提示!

亲爱的,丹尼尔

Erro,因为您正在将NSNumberint进行比较。

试试 -

if ([success isEqual:[NSNumber numberWithInt:1]])

要么

if ([success intValue] == 1)

你应该使用[success intValue] == 1 NSNumber是一个类,因此number是指针,而不是直接值。

NSNumber是一个对象(即指针),所以你不能仅仅把它比作字面像一个整数1 相反,您必须从数字对象中提取int值:

if ([success intValue] == 1) {
   ...
}

如果success应该指示一个布尔值,您可能想尝试这个

NSDictionary *results = [jsonstring JSONValue];
NSNumber *success = [results objectForKey:@"success"]; 

if ([success boolValue]) { 
  // success!
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM