Ios 从textfield到NSArray的输入值

Ios 从textfield到NSArray的输入值,ios,objective-c,Ios,Objective C,我在创建此问题的解决方案时遇到问题: 创建一个将存储5个数字(最好是浮点数)的应用程序,然后对它们进行排序。数组类型是不可变的 首先:我的问题是如何从textfield获取浮点值,然后将其放入数组中。我的想法是这样编码: int a = [num1.text intValue]; int b = [num2.text intValue]; int c = [num3.text intValue]; NSArray *myArray; myArray = [NSArray stringWithF

我在创建此问题的解决方案时遇到问题:

创建一个将存储5个数字(最好是浮点数)的应用程序,然后对它们进行排序。数组类型是不可变的

首先:我的问题是如何从textfield获取浮点值,然后将其放入数组中。我的想法是这样编码:

int a = [num1.text intValue];
int b = [num2.text intValue];
int c = [num3.text intValue];

NSArray *myArray;
myArray = [NSArray stringWithFormat: @"%f",a,b,c];
我的第二个问题是,我不知道如何对浮动进行排序。你能告诉我一些想法吗


多谢各位

像这样的方法应该会奏效:

    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来自核心图形

浮动来自C/C++


更推荐在Objective-C中使用CGFloat,而不是简单地使用float。还有,用NSInteger代替int.

嘿,伙计!谢谢你的回复!我能问你CGFloat是什么意思吗?我很高兴能帮你。最后一个问题,伙计,(很抱歉)你能给我解释一下排序的过程吗?非常感谢,非常简单,SorterDarrayusingComparator:方法将在其算法中使用NSComparisonResult块逻辑,它代表您完成所有操作。行“return[first compare:second];”使用NSNumber类的compare:method,它检测如何根据两个数字的类型比较它们。对于您来说,算法本身可能非常复杂。你可以在谷歌上搜索快速排序,这是最有效的排序方法之一。其他方法有MergeSort、SelectSort、BubbleSort(最差的)等。我还有最后一个问题,先生:)我应该使用Comparator将其他对象(如obj3、OBJ4、OBJ5)放入SorterDarray中吗?或者只有两个对象是常量