• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - NSMutableArray 的 int 值从 1 到 100

[复制链接]
菜鸟教程小白 发表于 2022-12-13 06:49:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

这应该很容易,但不知何故它不想为我工作。使用 iOS 7 和 XCode 5。 我要做的就是创建一个值从 1 到 100 的数组。

NSMutableArray *array;
for (int i = 0; i < 100; i++)
{
    [array addObject:i];
}

这不起作用。我收到“ARC 不允许将 'int' 隐式转换为 'id'。 我明白了,我不能将原始类型添​​加到 NSMutableArray。

    [array addObjecti];

这也不起作用。我在程序中收到“意外的'@'”

    [array addObject:[NSNumber numberWithInt:i]];
    [array addObject:[NSNumber numberWithInteger:i]];

(无论哪种情况)这“有效”(编译)但它确实“无效”。问题在于 NSNumber 的值实际上不是 1-100。我得到的每一行是“147212864”、147212832、“147212840”……不是我想要的。

最后:

for (NSNumber *i = 0; i < [NSNumber numberWithInteger:100]; i++)
{
    [array addObject:i];
}

这也无法编译。我在 i++ 上遇到错误。 “指向接口(interface) 'NSNumber' 的指针的算术运算,对于这个架构和平台来说,它不是一个恒定的大小”

关于如何在 obj-c 上做这个极其简单的事情有什么建议吗?



Best Answer-推荐答案


其中任何一个都可以工作:

NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < 100; i++) {
    [array addObject(i)];
}

NSMutableArray *array = [NSMutableArray array];
for (int i = 0; i < 100; i++) {
    [array addObject:[NSNumber numberWithInt:i]];
}

以下是您的代码片段不起作用的原因:

  1. [array addObject:i] - 你不能将原语添加到 Cocoa 集合中
  2. [array addObjecti] - 您忘记将表达式 i 括在括号中
  3. NSNumber *i = 0; i < [NSNumber numberWithInteger:100]; i++ - 你不能增加 NSNumber 而不先“解包”它的值。

关于ios - NSMutableArray 的 int 值从 1 到 100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22153463/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap