- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要帮助来静默弃用:FSPathMakeRef
、FSIsAliasFile
、FSResolveAliasFileWithMountFlags
、FSRefMakePath
。
任何帮助将不胜感激。
//1) 已弃用 FSPathMakeRef **//
error = FSPathMakeRef((UInt8*)[filename fileSystemRepresentation], &ref, &isFolder);
if (error) return NO;
//2) 此处已弃用 FSIsAliasFile *//
error = FSIsAliasFile(&ref, &isAlias, &isFolder);
if (error) return NO;
if (isAlias)
{
if (isFolder) return YES;
//3) 此处已弃用 FSResolveAliasFileWithMountFlags *//
error = FSResolveAliasFileWithMountFlags(&ref, true, &isFolder, &isAlias,
kARMMountVol | kARMNoUI | kARMMultVols | kARMSearch);
if (error) return NO;
if (isFolder) return YES;
//4) 此处已弃用 CFURLCreateFromFSRef *//
fileURL = CFURLCreateFromFSRef(kCFAllocatorDefault, &ref);
filepath = (NSString*)CFBridgingRelease(CFURLCopyFileSystemPath(fileURL, kCFURLPOSIXPathStyle));
CFRelease(fileURL);
最佳答案
现代方法是使用 NSURL
来表示文件位置。因此,您将必须替换 FSRef
的所有使用。 (也就是说,如果您希望将 FSPathMakeRef()
替换为另一个也为您提供 FSRef
的函数,您将会失望。)
因此,您可以使用 +[NSURL fileURLWithPath:]
或 +alloc
加 -[NSURL,而不是
.FSPathMakeRef()
initFileURLWithPath:]
要替换 FSIsAliasFile()
,您可以使用 -[NSWorkspace typeOfFile:error:]
获取类型,然后使用 -[NSWorkspace type:conformsToType: ]
对照 kUTTypeAliasFile
进行检查。
要替换 FSResolveAliasFileWithMountFlags()
,您可以使用 NSURL
的“书签数据”功能。首先使用 +bookmarkDataWithContentsOfURL:error:
从文件中获取书签数据,然后使用 +URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:
进行解析。
您不需要替换 CFURLCreateFromFSRef()
,因为您已经有一个 NSURL
。
关于cocoa - 我如何现代化已弃用的 FSPathMakeRef、FSIsAliasFile、FSResolveAliasFileWithMountFlags、FSRefMakePath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24870288/
我是一名优秀的程序员,十分优秀!