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