Ron*_*ann 1 indexing objective-c return-value nsarray
我有一个包含两个元素50和60的数组:
NSArray*array = [NSArray arrayWithObjects:
[NSNumber numberWithLong:50],
[NSNumber numberWithLong:60], nil];
Run Code Online (Sandbox Code Playgroud)
稍后使用数组时(事实上我将此数组作为默认列表写入plist文件)我这样做:
long value = [array objectAtIndex:1];
Run Code Online (Sandbox Code Playgroud)
此值包含15559后我不明白.在调试器中[array objectAtIndex:1]清楚地显示(长)60.

对不起,我看不出有什么不对;(
有任何想法吗?
罗纳德
A long不是NSNumber.如果要设置value为longto [array objectAtIndex:1],则必须将其从NSNumber转换为long.您可能希望呼吁longValueNSNumber这样做.
你可能想知道编译器为什么不抱怨并在这里帮助你.这可能是因为数组中的对象被取为id,所以大多数赌注都是关闭的.这是数组的一个常见问题:知道你要提取什么,以及如何处理它,取决于你.
您的调试器屏幕截图非常好.请注意,如果你在它仔细看现在,你的头脑清醒,它是关于差异之间很清楚value这是一个long,一方面,和array[0]这是一个NSNumber包裹长,对其他.所以调试器实际上一直在回答你的问题!
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |