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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)