首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储引用,然后使用extern NSString const?

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

Stack Overflow用户
提问于 2011-11-18 19:55:14
回答 1查看 203关注 0票数 1

我制作了一个包含字典条目的plist作为字典,每个ABRecord属性都有一个,以后我想使用它。

这些字典是key/value NSStrings,如下所示:kABEmailProperty/email

我希望能够通过枚举解压缩的plist字典ABRecord (假定inRecord是ABRecord)从指定的ABRecord收集值。

代码语言:javascript
复制
__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];    
                }
            }
        }];

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

我试过使用&key,和(Id)键,以及(void *)键,但是我真的只是在四处乱晃。

我在搜索有关使用全球外场的各种问题方面没有成功,尽管这是信息丰富的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-18 23:12:42

如果我对你的理解是正确的,你就有以下几点:

NSString *foo = "kABEmailProperty";

你想做这样的事:

[inRecord valueForProperty:kABEmailProperty];

基于foo的价值。对,是这样?没有办法直接这样做,因为名称"kABEmailProperty“在运行时是不容易访问的;它只是一个编译时名称。

我的建议是制作一本字典,里面有所有的键,如下所示:

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

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

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

也就是说,从字符串@"kABEmailProperty"映射到kABEmailProperty实际拥有的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8188342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档