我的程序中有以下代码行,我从第四版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 Programming的新手来说有点压倒性。无论如何,该特定方法不再列在我能找到的唯一filemanager参考文档中(https://developer.apple.com/library/mac/#documentation/Carbon/Reference/File_Manager/Reference/reference.html)它是甚至没有列为“已弃用”。它根本就不存在。
显然,它仍然有效,但显然这个想法是利用一种不同的,更现代的方式来创建一个目录(我注意到filemanager引用是一个Carbon vs. Cocoa引用。我还没试过在Lion上运行它看它是否仍然有效。)
是否可以直接替换此弃用的方法?
如果没有,Apple是否试图取消路径名,而是完全切换到Unicode? (请原谅我,如果我对这个问题和术语有点困惑......我从80年代末开始就没有编写代码......)我以前从来没有真正使用过Unicode,所以我不知道在哪里开始。
如果有人可以推荐关于Unicode和/或编程代码的优秀当前入门来读取/写入Cocoa中的文件,我们将不胜感激!
答案 0 :(得分:4)
Apple正在做的是远离URL的路径 - 我不知道它们是否会一路走下去,但它们确实贬低了一些支持URL路径的路径方法。 createDirectoryAtPath:attributes的替换:是createDirectoryAtURL:withIntermediateDirectories:attributes:error:
我不确定为什么你在文档中找不到它,如果你搜索createDirectoryAtPath:attributes:它会把你带到折旧的方法,在那个引用中它会指向你的替换。