gpt4 book ai didi

cocoa - 如何存储引用,然后使用 extern NSString const ?

转载 作者:行者123 更新时间:2023-12-03 17:25:10 24 4
gpt4 key购买 nike

我已经制作了一个 plist 作为包含字典条目的字典,每个字典条目对应我稍后要使用的每个 ABRecord 属性。

这些字典是键/值 NSStrings,如下所示:kABEmailProperty/电子邮件

我希望能够使用解压的 plist 通过枚举解压的 plist 字典来从指定的 ABRecord 收集值(假设 inRecord 是一个 ABRecord):

__block NSMutableArray *valueGroup = [[NSMutableArray alloc] init];

[self.propsDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSString *valueString = [inRecord valueForProperty:key];
if (valueString) {
NSDictionary *dict = [NSDictionary dictionaryWithObject:valueString forKey:obj];
[valueGroup addObject:dict];
}
}
}];

我如何正确引用key,以便它是ABGlobals.h中的ABRecord全局属性引用,而不是>存储在plist中的字符串

我尝试过使用 &key、(id)key 和 (void *)key,但我真的只是胡乱

我没有成功地搜索有关使用全局外部的各种问题,尽管这已经提供了信息。

最佳答案

如果我理解正确的话,你得到的是以下内容:

NSString *foo = "kABEmailProperty";

你希望能够做这样的事情:

[inRecord valueForProperty:kABEmailProperty];

基于 foo 的值。正确的?无法直接执行此操作,因为名称“kABEmailProperty”在运行时无法(轻松)访问;它只是一个编译时名称。

我的建议是制作一本包含所有键的字典;像这样的东西:

NSDictionary *keys = [NSDictionary DictionaryWithObjectsAndKeys:kABEmailProperty, @"kABEmailProperty", kABOtherProperty, @"kABOtherProperty", ..., nil];

然后你可以做这样的事情:

[inRecord valueForProperty:[keys objectForKey:foo]];

即将字符串 @"kABEmailProperty" 映射到 kABEmailProperty 实际具有的值。

关于cocoa - 如何存储引用,然后使用 extern NSString const ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com