我在创建此问题的解决方案时遇到问题:
创建一个应用程序,它将存储5个数字(最好是浮点数),然后将它们排序。数组类型是不可变的。
首先关闭:我的问题是如何从文本字段中获取浮点数然后将其放入数组中。我的想法是像这样编码:
int a = [num1.text intValue];
int b = [num2.text intValue];
int c = [num3.text intValue];
NSArray *myArray;
myArray = [NSArray stringWithFormat: @"%f",a,b,c];
我的第二个问题是我无法理解如何对浮子进行排序。你能告诉我一些意见吗?
非常感谢!
答案 0 :(得分:1)
这样的事情应该有效:
CGFloat a = [num1Label.text floatValue];
CGFloat b = [num2Label.text floatValue];
CGFloat c = [num3Label.text floatValue];
CGFloat d = [num4Label.text floatValue];
CGFloat e = [num5Label.text floatValue];
NSArray *array = @[ [NSNumber numberWithFloat:a],
[NSNumber numberWithFloat:b],
[NSNumber numberWithFloat:c],
[NSNumber numberWithFloat:d],
[NSNumber numberWithFloat:e]];
array = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
// logic for sorting
NSNumber *number1 = (NSNumber *)obj1;
NSNumber *number2 = (NSNumber*)obj2;
return [first compare:second];
}];
CGFloat与float基本相同。
如果您查看文档(OPTION +单击该文档),您会看到:
# define CGFLOAT_TYPE float
// ...
typedef CGFLOAT_TYPE CGFloat;
CG来自Core Graphics。
float来自C / C ++
建议在Objective-C中使用CGFloat,而不是简单地使用浮点数。另外,NSInteger而不是int。