Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为核心数据属性指定有效值_Objective C_Xcode_Cocoa Touch_Cocoa_Core Data - Fatal编程技术网

Objective c 为核心数据属性指定有效值

Objective c 为核心数据属性指定有效值,objective-c,xcode,cocoa-touch,cocoa,core-data,Objective C,Xcode,Cocoa Touch,Cocoa,Core Data,当我使用核心数据时,我有时会遇到 属性只能有一组特定的可能值。作为 例如,假设您制作了一个bug跟踪器,并且有一个实体 叫臭虫。那么,您可能希望为 声明该错误处于错误状态。假设可能的状态是开放的, 已关闭并正在进行 到目前为止,我所做的是将这样的属性定义为 串。通常我在用户界面上有一个组合框或一个广播组 接口和可能的输入值已由 组合框或收音机组提供的可能选项 这种方法的一个问题是,如果 应用程序被本地化为另一种语言。然后这个词 这表示状态的存储方式根据不同的 当前语言。我需要用一种语言保存所选内

当我使用核心数据时,我有时会遇到 属性只能有一组特定的可能值。作为 例如,假设您制作了一个bug跟踪器,并且有一个实体 叫臭虫。那么,您可能希望为 声明该错误处于错误状态。假设可能的状态是开放的, 已关闭并正在进行

到目前为止,我所做的是将这样的属性定义为 串。通常我在用户界面上有一个组合框或一个广播组 接口和可能的输入值已由 组合框或收音机组提供的可能选项

这种方法的一个问题是,如果 应用程序被本地化为另一种语言。然后这个词 这表示状态的存储方式根据不同的 当前语言。我需要用一种语言保存所选内容 独立的态度


您将如何做到这一点?

正确的方法是:

在数据模型编辑器中,为
Bug
实体定义
Integer 16
属性,以保持这三种状态。在您的
Bug
类中,这将是一个
NSNumber
对象

此数字的实际显示字符串应由您的程序处理。要使此逻辑保持整洁的封装,请将适当的方法添加到
Bug.m
。例如:

-(NSString *)stateTitle {
    NSString *title = NSLocalizedString(@"None", nil);
    if ([self.state intValue]==1) return NSLocalizedString(@"Open", nil);
    if ([self.state intValue]==2) return NSLocalizedString(@"Closed", nil);
    if ([self.state intValue]==3) return NSLocalizedString(@"In Progress", nil);
    return title;
}

现在,在UI类中,您只需使用
[theBug StateTTitle]
即可显示适当的本地化描述,例如在
UILabel

正确的方法是:

在数据模型编辑器中,为
Bug
实体定义
Integer 16
属性,以保持这三种状态。在您的
Bug
类中,这将是一个
NSNumber
对象

此数字的实际显示字符串应由您的程序处理。要使此逻辑保持整洁的封装,请将适当的方法添加到
Bug.m
。例如:

-(NSString *)stateTitle {
    NSString *title = NSLocalizedString(@"None", nil);
    if ([self.state intValue]==1) return NSLocalizedString(@"Open", nil);
    if ([self.state intValue]==2) return NSLocalizedString(@"Closed", nil);
    if ([self.state intValue]==3) return NSLocalizedString(@"In Progress", nil);
    return title;
}
现在,在UI类中,您只需使用
[theBug StateTTitle]
即可显示适当的本地化描述,例如在
UILabel