我有一个应用程序,我在整数类型的数据库中输入值。从星期日到星期六,我有一个7行的桌面视图。当用户选择星期日并单击保存按钮时,在带有id的日期表中输入整数值0。
如果用户选择星期一和星期二并单击保存按钮,则在数据库中为该特定ID输入整数值2和3。这工作正常。但问题是我想获取这些整数值并在标签中显示字符串值。
即对于特定的id,如果在数据库中输入1和2,则在星期日的标签中,应显示星期一。
答案 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。虽然这种数据模型方法与您的问题陈述没有直接关系,但这是我在我的应用程序中使用数据库处理的方式。希望你能从中得到一些暗示。