objective-c – 使用浮点数初始化NSArray?

objective-c – 使用浮点数初始化NSArray?,第1张

概述这是使用浮点对象来初始化NSArray的有效方法吗? NSArray *fatArray = [NSArray arrayWithObjects: [NSNumber numberWithFloat:6.9], [NSNumber numberWithFloat:4.7], [N 这是使用浮点对象来初始化NSArray的有效方法吗?

NSArray *fatArray = [NSArray arrayWithObjects:                    [NSNumber numberWithfloat:6.9],[NSNumber numberWithfloat:4.7],[NSNumber numberWithfloat:6.6],[NSNumber numberWithfloat:6.9],nil];

它的作品感觉正确,只是想确保我在正确的轨道上。

加里

@R_301_6120@ 正如mouviciel已经写的,这是做到这一点的方法。当我写这样的东西,我通常使用一个简单的宏来缩短代码:

#define FBox(x) [NSNumber numberWithfloat:x]

那么你可以这样重写代码:

NSArray *fatArray = [NSArray arrayWithObjects:    FBox(6.9),FBox(4.7),FBox(6.6),FBox(6.9),nil];

巨魔是邪恶的,但在这种情况下,宏是如此简单,我会用它。加上代码好像少了一点,特别是如果宏定义不是很远的话。

如果你写了很多这样的代码,你可以创建一个具有可变数量的float参数的自定义初始化器的类别,但是结束参数列表有一个问题。你可以先传播总数:

- (ID) initWithfloats: (int) numfloats data: (float) float1,...;

但是用手计算参数容易出错。或者你可以使用一些哨兵值,例如标记参数列表结尾的零,但这会打开一个称为浮点比较的全新蠕虫。

请注意,现在您可以简单地写下列内容:

NSArray *List = @[@6.9,@4.7,@6.6,@6.9];

这不是一个语法梦想成真,但它是编译器正式支持,它比以前的解决方案好得多。 See the documentation for more goodness。

总结

以上是内存溢出为你收集整理的objective-c – 使用浮点数初始化NSArray?全部内容,希望文章能够帮你解决objective-c – 使用浮点数初始化NSArray?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1038093.html

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

发表评论

登录后才能评论

评论列表(0条)

保存