如何在objective-C中将整数值映射到字符串

时间:2011-12-06 06:02:32

标签: iphone objective-c

我有一个应用程序,我在整数类型的数据库中输入值。从星期日到星期六,我有一个7行的桌面视图。当用户选择星期日并单击保存按钮时,在带有id的日期表中输入整数值0。

如果用户选择星期一和星期二并单击保存按钮,则在数据库中为该特定ID输入整数值2和3。这工作正常。但问题是我想获取这些整数值并在标签中显示字符串值。

即对于特定的id,如果在数据库中输入1和2,则在星期日的标签中,应显示星期一。

3 个答案:

答案 0 :(得分:1)

你可以点击下面的

enum {SUNDAY, MUNDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};

并使用switch case来传递你的整数

NSString *str_label = @"";
    switch (YourInt) {
            case SUNDAY: str_label=[str_label stringByAppendingString:@"SUNDAY"];break;
            case MUNDAY: str_label=[str_label stringByAppendingString:@"MUNDAY"]; break;
            case TUESDAY: str_label=[str_label stringByAppendingString:@"TUESDAY"]; break;
            default: ;
        } 

答案 1 :(得分:1)

使用目标C ++。

std::map<int, std::string> mapping;  

参考how can I map an int to a corresponding string in C/C++帖子。

答案 2 :(得分:1)

Rani,你还没有提到你正在使用什么数据库,即核心数据或SQLite。正如您所提到的,您已经在数据库中保存了整数值,您需要做的就是

int WEEKDAY_INTVALUE
while (sqlite3_step(statement) == SQLITE_ROW) {
      WEEKDAY_INTVALUE =  sqlite3_column_int(statement, 0);
     NSLog(@"The value is  %d ", fieldValue);
}

获取int值后,您可以使用预定义的Enum来获取字符串值,例如

typedef enum {

    SUNDAY = 0,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
}WEEKDAYS;

您可以使用切换案例传递此抓取的整数值,并通过

之类的内容分配工作日文本
switch (WEEKDAY_INTVALUE) {
    case SUNDAY:
        [lbl setText:@"Sunday"];
        break;
    default:
        break;
}

编辑://使用WEEKDAYS枚号

如果您使用如下的数据模型

@interface Anything : NSObject {

    WEEKDAYS        savedWeekDay;
    NSString*   someField;
}

现在当您创建此“Anything”类的对象时,例如

NSMutableArray * arrAllObjects = [[[NSMutableArray alloc] initWithCapacity:0] autorelease];

 while (sqlite3_step(statement) == SQLITE_ROW) {
    Anything* object = [[Anything alloc] init];
    object.savedWeekDay = sqlite3_column_int(statement, 0);
     object.someField = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
    [arrAllObjects addObject:object];
    [object release];
}

您稍后将此数组从DBCommunicator传递到ViewController。虽然这种数据模型方法与您的问题陈述没有直接关系,但这是我在我的应用程序中使用数据库处理的方式。希望你能从中得到一些暗示。