1
Cocoa和CocoaTouch经常使用字符串常量,我想知道是否有语法强制(鼓励?)一组特定的字符串作为方法的参数。Objective-C语言语法 - “类型检查”常量字符串
例如,NSPersistentStoreCoordinator
的方法-addPersistentStoreWithType:configuration:URL:options:error:
对第一个参数采用四种可能的字符串中的一种。
这些字符串中NSPersistentStoreCoordinator.h
作为
COREDATA_EXTERN NSString * const NSSQLiteStoreType NS_AVAILABLE(10_4, 3_0);
COREDATA_EXTERN NSString * const NSXMLStoreType NS_AVAILABLE(10_4, NA);
COREDATA_EXTERN NSString * const NSBinaryStoreType NS_AVAILABLE(10_4, 3_0);
COREDATA_EXTERN NSString * const NSInMemoryStoreType NS_AVAILABLE(10_4, 3_0);
声明(FWIW,所述COREDATA_EXTERN
宏扩展为extern
加上一些东西其他平台)
超越(参数)的方法中的断言,是有确保Xcode/clang/LLVM只鼓励这四个值的方法?
该死的,这是一个无赖。我已经编写了一个代码,它将一个新的“现代”枚举映射到一个静态的字符串数组中,它给了Xcode完成的帮助,但是从长远来看它提供了很少的回报(仍然需要声明一个特定的范围被传入)。谢谢! – edelaney05