Objective c Cocoa应用程序中固定NSString变量的存储位置?
我有不同的类,它们有NSString固定变量(比如@“/Users/user/media”或xml命令)。我认为把所有东西都放在课堂上是个糟糕的设计。 存储固定字符串的最佳位置是什么?可能是首选项文件Objective c Cocoa应用程序中固定NSString变量的存储位置?,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我有不同的类,它们有NSString固定变量(比如@“/Users/user/media”或xml命令)。我认为把所有东西都放在课堂上是个糟糕的设计。 存储固定字符串的最佳位置是什么?可能是首选项文件 另外,我是可可新手,请详细描述它,我如何存储,并读取该值。谢谢。方法很多,但我喜欢在我的类实现文件中这样做: NSString *const ABConstantStringname = @"name"; 其中,AB是您正在使用的名称间距(如果您正在使用),而ConstantStringName
另外,我是可可新手,请详细描述它,我如何存储,并读取该值。谢谢。方法很多,但我喜欢在我的类实现文件中这样做:
NSString *const ABConstantStringname = @"name";
其中,AB
是您正在使用的名称间距(如果您正在使用),而ConstantStringName
是常数的一些有意义的名称
然后,您可以随时使用
ABNameIdentifier
变量。您。取决于作用域-如果您只想在实现中une,您可以只放入.m,但是如果您想公开给类的使用者(在.m实现之外),您还需要将其外部化
在标题中:
#import <Cocoa/Cocoa.h>
extern NSString* const BNRTableBgColorKey;
extern NSString* const BNREmptyDocKey;
@interface PreferenceController : NSWindowController
{
...
- (id)init
{
NSLog(@"init");
NSString * const BNRTableBgColorKey = @"TableBackgroundColor";
NSString * const BNREmptyDocKey = @"EmptyDocumentFlag";
您是指在整个应用程序/类中保持不变的字符串吗?是的。例如常量路径或XML请求。通常,您不应该硬编码路径。有几个API可用于获取系统提供的文件夹的位置(例如
NSSearchPathForDirectoriesInDomains()
和NSHomeDirectory()
),您应该使用这些方法/函数的结果,并使用stringByAppendingPathComponent:
方法NSString
来构造路径字符串。谢谢!使用像@/Users/”这样的常量路径好吗?如果您想要一个路径字符串,那么上面的就可以了。硬编码路径到/Users
不是一个好主意。请阅读。谢谢。这是非常有用的知道