XCode 警告:初始化从整数生成指针而不进行强制转换(在尝试将值分配给 NSNumber 时)

发布于 2024-08-06 05:55:23 字数 287 浏览 4 评论 0原文

当我尝试开发一个小型 iPhone 应用程序时,我在 Xcode 中遇到了警告。 我在 Xcode 中有这段代码:

NSNumber *randomNumber = arc4random() % [array count];

如果我 NSLog randomNumber,一切似乎都正常,但 Xcode 不断警告我,说:

初始化使指针来自整数而不进行强制转换

一定有一些我不明白的地方。预先感谢您帮助我:)

I'm stuck with a warning in Xcode while trying to develop a small iPhone App.
I've got this piece of code in Xcode :

NSNumber *randomNumber = arc4random() % [array count];

If I NSLog randomNumber, everything seems to work but Xcode keeps warning me, saying :

Initialization makes pointer from integer without a cast

There must be something I didn't understand. Thanks in advance for helping me out :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

枯叶蝶 2024-08-13 05:55:23

NSNumber 是一个 objc 对象,而 int 或 float 则不是。您现在将 int/float 分配给指针,这不太正确。

尝试:

// if the result is an int:
NSNumber *randomNumber = [NSNumber numberWithInt: (arc4random() % [array count])];

// if the result is a float: 
NSNumber *randomNumber = [NSNumber numberWithFloat: (arc4random() % [array count])];

NSNumber is an objc object, while an int or float isn't. You're now assigning an int/float to a pointer, which isn't quite right.

Try:

// if the result is an int:
NSNumber *randomNumber = [NSNumber numberWithInt: (arc4random() % [array count])];

// if the result is a float: 
NSNumber *randomNumber = [NSNumber numberWithFloat: (arc4random() % [array count])];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文