objective-c - 在 Obj-C 中使用用户名定义全局常量

标签 objective-c cocoa

我想定义一个包含用户名的常量文件路径(例如 /Users/username/Desktop...在我的具体情况下,它是我在 /var/spool 创建的目录/FolderICreate/用户名)。

声明此常量以便我的其他类可以识别它的最佳方式是什么?我目前有一个 globals.h 文件,用于包含需要查看全局变量的类,但我不确定如何设置该值。 #define 显然需要一个硬编码的字符串文字,我不确定是否可以或如何使用 extern const NSString* 设置字符串。我觉得这应该不难,但我很茫然。

-- 编辑--

正如人们正确指出的那样,我的代码是不必要的,因为我可以使用 NSUserName 等获取用户名,所以我将其删除。但我认为人们没有捕获我问题的重点。我可以看到有多种方法可以获取我想要的路径名——如何将其声明为常量?

最佳答案

对于您修改后的问题,正如凯林指出的那样,您不需要一个常量。 C 中的常量是在编译时定义的东西,并且您在编译时不知道其值是什么。

您不需要变量来解决此问题。你想要一个静态函数。 Foundation 提供了许多与您想要的类似的功能。如果您想要其他东西,请创建自己的静态函数 MYDirectoryForStuff()

不要创建非常量全局变量。那就是疯狂。然后,您必须在使用它们之前验证它们是否已初始化,这会导致各种微妙的错误。如果您使用静态函数,那么它可以很容易地进行自初始化。

关于objective-c - 在 Obj-C 中使用用户名定义全局常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11569084/

相关文章:

ios - 在 iOS 10 中安排和处理本地通知

cocoa - 如何从 plist 返回字典名称?

cocoa - Qt4 与 Cocoa 的比较

objective-c - NSWindowController:loadWindow从nib加载窗口但showWindow:不执行任何操作

objective-c - 是否有相当于 Smalltalk 的#copyWithout : in Cocoa’s collection classes?

iphone - -[NSOperationQueue操作]返回一个不应该的空数组?

iphone - 如何让 Ruby on Rails 与 ASIHTTPRequest 配合使用?

ios - 在 UITableViewCell 突出显示时更改 accessoryView

objective-c - 如何在不需要时摆脱 UIAppearance?

ios - UICollectionView Scroll 无法正确分页