1

我的程序中有以下代码行,这些代码取自 Stephen G. Kochan 的《Objective-C 编程》一书的第四版:

[fileManager createDirectoryAtPath:DATABASE_DIRECTORY attributes:nil];

注意:“fileManager”是我的 fm 变量,DATABASE_DIRECTORY 是我的路径的#define。

虽然它工作得很好(我运行的是 OSX 10.6.8),但每次编译时都会提醒我:

"createDirectoryAtPath:attributes:" is deprecated

我查看了文件管理器的参考文档,对于 Cocoa 编程的新手来说,这有点不知所措。无论如何,我能找到的唯一文件管理器参考文档中不再列出该特定方法(https://developer.apple.com/library/mac/#documentation/Carbon/Reference/File_Manager/Reference/reference.html)甚至没有被列为“弃用”。它根本不存在。

显然,它仍然有效,但显然这个想法是利用一种不同且更现代的方式来创建目录(我注意到文件管理器引用是 Carbon vs. Cocoa 引用。我还没有尝试在 Lion 上运行它,看看是否它仍然有效。)

这种不推荐使用的方法有直接替代品吗?

如果不是,Apple 是否试图取消路径名并完全切换到 Unicode?(如果我对这个问题和术语有点困惑,请原谅我......自 80 年代后期以来我没有编写过代码......)我过去从未真正将 Unicode 用于任何事情,所以我不知道在哪里开始。

如果有人可以推荐一本关于 Unicode 和/或编程代码以在 Cocoa 中读/写文件的良好当前入门读物,我们将不胜感激!

4

1 回答 1

4

苹果正在做的是从路径转向 URL——我不知道它们是否会一路走下去,但他们似乎确实贬低了很多路径方法,转而支持 URL 方法。createDirectoryAtPath:attributes: 的替换是 createDirectoryAtURL:withIntermediateDirectories:attributes:error:

我不确定为什么您在文档中找不到它,如果您搜索 createDirectoryAtPath:attributes: 它会将您带到折旧的方法,并在该引用中将您指向替换。

于 2012-05-06T05:05:57.327 回答