繁体   English   中英

Mac OSX 不推荐使用的 API - FSRef ref;

[英]Mac OSX Deprecated API - FSRef ref;

我有以下代码可以在 Pre OSX 10.13 机器上编译

  FSRef ref;
  OSType folderType = kApplicationSupportFolderType;
  char path_c[PATH_MAX];
  FSFindFolder(kUserDomain, folderType, kCreateFolder, &ref);
  FSRefMakePath( &ref, (UInt8*)&path_c, PATH_MAX);

我需要它来处理最新版本。 我怎样才能改变这个? 它目前说这样的 API 不存在

现代版本需要 Objective-C(++) 或 Swift。 在 Objective-C 中,它将是:

NSFileManager *fm = [NSFileManager new];
NSURL *url = [fm URLForDirectory:NSApplicationSupportDirectory
                        inDomain:NSUserDomainMask
               appropriateForURL:nil
                          create:YES
                           error:NULL];
char path_c[PATH_MAX];
[url getFileSystemRepresentation:path_c maxLength:sizeof(path_c)];

我不知道你将如何使用path_c 如果您只需要一个指向路径的 C 字符串的指针,并且在url对象被释放后它不会被使用,您可以改用url.fileSystemRepresentation 更好的是,在可能的情况下,改用采用 URL 而不是路径字符串的 API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM