Iphone 将字符串与ABPropertyID匹配

Iphone 将字符串与ABPropertyID匹配,iphone,objective-c,ios,Iphone,Objective C,Ios,我现在正在使用AddressBook,需要将ABPropertyID的字符串表示形式转换(匹配)为ABPropertyID: @"kABPersonEmailProperty" -> ABPropertyID kABPersonEmailProperty; 我可以不使用ifs灵活地完成它吗 我可以不使用ifs灵活地完成它吗 不是真的。最简单的方法可能是手动准备一个映射到两者之间的NSDictionary。因为常量的名称不是编译程序的一部分,所以无法完全自动执行此操作 例如: NSDic

我现在正在使用AddressBook,需要将ABPropertyID的字符串表示形式转换(匹配)为ABPropertyID:

@"kABPersonEmailProperty" -> ABPropertyID kABPersonEmailProperty; 
我可以不使用ifs灵活地完成它吗

我可以不使用ifs灵活地完成它吗

不是真的。最简单的方法可能是手动准备一个映射到两者之间的
NSDictionary
。因为常量的名称不是编译程序的一部分,所以无法完全自动执行此操作

例如:

NSDictionary *mapping = [NSDictionary dictionaryWithObjectsAndKeys:
    @"kABPersonEmailProperty", [NSNumber numberWithInteger:kABPersonEmailProperty],
    @"kABPersonEmailProperty", [NSNumber numberWithInteger:kABPersonBirthdayProperty],
    nil];

你到底是什么意思
ABPropertyID
定义为
int32\u t
,即有符号32位整数。将字符串转换为同一类型并比较两者应该很容易。我收到一个字符串(例如@“KabbersoneMailProperty”),我应该创建一个适当的ABPropertyIDHm,我发现了一个类似的问题:但我不想使用字典,有没有办法让它与KeyValueCodeing一起工作?