ios – 使用#define变量创建NSNumber

ios – 使用#define变量创建NSNumber,第1张

概述根据我对NSNumber的理解,如果使用某种数据类型创建NSNumber,则需要使用相同的数据类型访问该变量.例如 NSNumber *myIntNumber = [NSNumber numberWithInt:1];int myInt = [myIntNumber intValue];NSNumber *myNSIntegerNumber = [NSNumber numberWithInt 根据我对NSNumber的理解,如果使用某种数据类型创建NSNumber,则需要使用相同的数据类型访问该变量.例如

NSNumber *myIntNumber = [NSNumber numberWithInt:1];int myInt = [myIntNumber intValue];NSNumber *myNSIntegerNumber = [NSNumber numberWithInteger:1];NSInteger myInteger = [myIntNumber integerValue];

如果使用#define变量创建NSNumber:

#define MY_define 6

这是否意味着我无法做到以下几点

NSNumber *myNSIntegerNumber = [NSNumber numberWithInteger:MY_define];NSInteger myInteger = [myIntNumber integerValue];

因为MY_define不是NSInteger?

我知道上面的代码可以在32位应用程序中运行,但我正在努力确保它可以在64位应用程序上运行,这对于这些事情也更加挑剔.当然,做正确的事情永远不会伤害.

如果我不能做到这一点,我应该尝试不同地定义MY_define,以便我可以使用它来创建一个NSNumber,以后可以用来检索NSInteger?

解决方法 您对NSNumber的理解不正确.您可以使用它支持的任何类型创建NSNumber,然后可以使用任何支持的类型访问器.两者不需要相同.

// Perfectly valIDNSNumber *number = [NSNumber numberWithfloat:3.14];int val = [number intValue]; // results in 3

您对#define的使用是完全有效的.预编译器只是将您的代码转换为:

NSNumber *myNSIntegerNumber = [NSNumber numberWithInteger:6];

请记住,#define只是在编译代码之前完成的简单复制和粘贴(至少在这种简单形式中).

你甚至可以使用现代语法:

NSNumber *number = @MY_define;

变为:

NSNumber *number = @6;

BTW – 为什么发布这个问题?为什么不先试试呢?

总结

以上是内存溢出为你收集整理的ios – 使用#define变量创建NSNumber全部内容,希望文章能够帮你解决ios – 使用#define变量创建NSNumber所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1054721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存