我需要以一种容易比较两个数字并找出哪个较低的方式枚举3 NSString
作为integers
。这三个字符串是:
@"verde" = 1
@"giallo" = 2
@"rosso" = 3
,并与if statement
中的其他整数进行比较。这可能吗?
我不是100%确定我理解,但这可能是你想要的。保持字符串到整数映射的字典:
NSDictionary *stringMap = @{
@"verde": @(1),
@"giallo": @(2),
@"rosso": @(3)
};
,当涉及到比较时,做:
NSString *s1 = @"verde";
NSString *s2 = @"rosso";
NSNumber *n1 = stringMap[s1];
NSNumber *n2 = stringMap[s2];
if (n1 && n2) {
NSComparisonResult result = [n1 compare n2];
if (result == NSOrderedAscending) {
// s1 < s2
} else if (result == NSOrderedDescending) {
// s1 > s2
} else {
// s1 == s2
}
}
听起来你需要enum
。试一下:
第一步:定义一个enum:
typedef NS_ENUM (NSInteger, MyStrings) {
Verde = 0,
Giallo,
Rosso
};
步骤2:定义一个枚举类型属性,如下所示:
@property (nonatomic, assign) MyStrings string;
第三步:最后这样使用:
self.string = 2; // Setting property value
if (self.string < Verde) {
NSLog(@"Small Value");
} else {
NSLog(@"Big Value");
}