从textfield到NSArray的输入值

时间:2014-08-07 01:04:24

标签: ios objective-c

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

创建一个应用程序,它将存储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];

我的第二个问题是我无法理解如何对浮子进行排序。你能告诉我一些意见吗?

非常感谢!

1 个答案:

答案 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。