我想通过一个字典围绕多个方法,并使用预定义的密钥集。我已经在我之前使用过的课程中看到过这一点,但我不确定如何设置它。这是我在m文件中使用的,例如:如何设置用于NSDictionary的键值对?
NSString *name = [dictionary objectForKey:kObjectsName];
NSDate *date = [dictionary objectForKey:kObjectsDate];
如何设置字典键的预定义名称?
我想通过一个字典围绕多个方法,并使用预定义的密钥集。我已经在我之前使用过的课程中看到过这一点,但我不确定如何设置它。这是我在m文件中使用的,例如:如何设置用于NSDictionary的键值对?
NSString *name = [dictionary objectForKey:kObjectsName];
NSDate *date = [dictionary objectForKey:kObjectsDate];
如何设置字典键的预定义名称?
你可以把#define语句在.m文件:
#define kObjectsName @"myName"
#define kObjectsDate @"myDate"
等
使用'NSString * const'可避免在多个.m文件中使用该字符串的另一个副本。 – paulmelnikow
通常苹果留下了一堆标题中定义的常量,例如像在NSAttributedString Application Kit Additions:
标准属性
归因串支持文本以下标准属性。如果密钥不在字典中,则使用下面描述的默认值。
NSString * NSFontAttributeName;
NSString * NSParagraphStyleAttributeName;
[...]
我的建议是使用自己的常量这个属性是太多的(有定义或使用全局常量变量)。
例如在.m文件(其中C是公司名称):
NSString* const CNURLKey= @"URLKey";
NSString* const CNupdateTimeKey= @"updateTimeKey";
NSString* const CNtagsKey= @"tagsKey";
NSString* const CNapplicationWillTerminateKey= @"applicationWillTerminateKey";
NSString* const CNtagAddedkey= @"tagAddedkey";
NSString* const CNtagRemovedKey= @"tagRemovedKey";
NSString* const CNcolorKey= @"colorKey";
而且在头文件:
extern NSString* const CNURLKey;
extern NSString* const CNupdateTimeKey;
extern NSString* const CNtagsKey;
extern NSString* const CNapplicationWillTerminateKey;
extern NSString* const CNtagAddedkey;
extern NSString* const CNtagRemovedKey;
extern NSString* const CNcolorKey;
或者你也可以使用定义为好。
您也可以使用户更容易,使得返回包含所有变量列表的NSArray
或NSSet
的方法。
如果您需要仅保留少数属性,请重新考虑使用字典的选择,并使用包含可通过KVC访问的所有属性的类。
我使用'FOUNDATION_EXPORT',我认为它比'extern'更受欢迎。 – paulmelnikow
@noa对于Objective-C,FOUNDATION_EXPORT宏导致“extern”。 –
这似乎是使用它的一个很好的理由。 – paulmelnikow
kObjectsName&kObjectsDate是一些字符串,它要传递到获取对象。请详细说明'我如何设置字典密钥的预定义名称? –
你想要什么......设置值或获得值 – Rajneesh071
因此,在我上面发布的代码中,这就是我将在方法内部使用的代码。我想知道如何做到这一点。在.h文件中设置这些默认名称的标准方式是什么? – Andrew