Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift NSTemporaryDirectory()不带空格 我的问题是:在中间没有空格吗?_Swift_Cocoa - Fatal编程技术网

Swift NSTemporaryDirectory()不带空格 我的问题是:在中间没有空格吗?

Swift NSTemporaryDirectory()不带空格 我的问题是:在中间没有空格吗?,swift,cocoa,Swift,Cocoa,编辑,来自文档:API契约不保证由NSTemporaryDirectory()返回的路径不包含空格;因此,你不能假设它不会。您需要考虑路径可能包含文件系统允许的任何和所有字符。为什么不编写能够在路径中保留空格的代码?对于临时目录路径,您并不能真正保证有任何特别之处。话虽如此,如果它现在没有空间,可能就不会有了,因为会出现这样的问题,遗留应用可能无法正确处理。所以,帮大家一个忙,试着正确处理空格:)。对不起,我能帮的最好的忙就是接受我问题的答案,如果你不知道,请不要发表评论。我正在开发一个应用程序

编辑,来自文档:

API契约不保证由
NSTemporaryDirectory()返回的路径不包含空格;因此,你不能假设它不会。您需要考虑路径可能包含文件系统允许的任何和所有字符。

为什么不编写能够在路径中保留空格的代码?对于临时目录路径,您并不能真正保证有任何特别之处。话虽如此,如果它现在没有空间,可能就不会有了,因为会出现这样的问题,遗留应用可能无法正确处理。所以,帮大家一个忙,试着正确处理空格:)。对不起,我能帮的最好的忙就是接受我问题的答案,如果你不知道,请不要发表评论。我正在开发一个应用程序,对于策略来说,它需要转储一些二进制文件。在修补了二进制文件的某些位置后,这个文件将从他们给我的编译框架中闪存到一个设备上。那是一个客户的合同。如果我想处理E空间,我当然没有问题,只是不要使用NSAppleScript,因为任何其他方法都很好,比如编写一个在这种情况下不需要的助手工具,用提升的权限来做事情。他们也没有为此付费。编辑了第一篇关于我为什么需要它的帖子。问题很简单,只是我无法查看苹果的源代码,文档中也没有这方面的内容(如果我错了,请纠正我)。GNUStep-NSTemporaryDirectory()将用户名添加到该路径中(因此很明显可能会发生这种情况),但在Cocoa中不会发生这种情况(请参见此处:)。同样明显的是,在Cocoa中,事情是不同的,它们的例子(见我对这个问题的新编辑)只是“过时了”。@Mike97这在Cocoa中现在还没有发生。然而,任何没有承诺的事情都可以随时自由改变。
NSTemporaryDirectory()
的位置实际上在过去已经改变了;它过去在
/tmp
中,而现在在
/var/文件夹中。未来可能再次发生变化;你应该以这样一种方式来编写你的代码,如果发生这种情况,它不会崩溃。严格来说,这不是一个好代码的问题,只是我讨厌AppleScript,它不是一种语言(或者是?)。我找到了一种不用编写助手的方法(我有一个助手可以重用,但这对他们不好)。这是Windows工具的Mac变体,客户必须对某些设备进行编程。。。但是定价不允许我浪费使用AppleScript的时间,所以我会通知可能存在的错误,或者干脆退回到/private/tmp,在那里没有人会窃取他们宝贵的临时文件(他们的恐惧),因为还有NSTemporaryDirectory()无论如何这不是秘密,而且看起来会持续3天。如果他们不想让窥探者看到他们的临时文件,你不应该使用/private/tmp
NSTemporaryDirectory()
可能不是秘密,但它是按用户随机生成的。在其他用户下运行的程序将无法访问其内容。
guard let tempDirURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("MyAppStuff.xxx") else {
        return nil
    }