gpt4 book ai didi

objective-c - NSArray 中递增的数字 : Is there a shorter syntax?

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:15 25 4
gpt4 key购买 nike

我有一个包含多个 NSNumber 的数组。有时我想在数组中增加一个数字。以下是我目前的做法:

map[2] = [NSNumber numberWithInteger:[map[2] integerValue] + 1]

我必须将数字转换为 NSInteger,然后在递增后将其重新转换为 NSNumber,因为 NSArray 只接受 id。

这感觉很不对。有更好的方法吗?

最佳答案

您可以使用 @(...) 语法稍微简化一下:

map[@2] = @([map[@2]integerValue] + 1);

但是,一般方法保持不变,因为 NSNumber 对象是不可变的。如果 Cocoa 提供 NSMutableNumber 类会更容易,但框架中缺少它。

如果你想避免每次值递增时都创建一个新的 NSNumber 实例,你可以创建一个类似于 NSNumber 的可变对象,它支持就地递增、递减等。

关于objective-c - NSArray 中递增的数字 : Is there a shorter syntax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com