某些字符使moveItemAtURL:toURL:error:crash。我该如何避免它们?

时间:2014-09-09 00:07:07

标签: cocoa swift

首先,我正在使用Swift。其次,这行在我的代码中运行良好:

let didIt = fileManager.moveItemAtURL(originalFilePath, toURL: newFilePath, error: nil)

...只要newFilePath中没有特殊字符。如果newFilePath中有美元符号或符号($,&),则该行失败。我的问题是newFilePath来自窗口中的文本字段,用户可以在其中键入任何旧东西。如何转义特殊字符,或对它们进行编码以便它们通过测试并包含在新文件名中?

提前感谢任何指示。

1 个答案:

答案 0 :(得分:0)

  

我的问题是newFilePath来自窗口中的文本字段,用户可以在其中键入任何旧东西。

对,你有问题。为什么不使用NSSavePanel让用户选择保存文件的名称?

如果您坚持从文本字段中获取输入,则-URLByAppendingPathComponent:的文档明确指出路径组件字符串应为原始格式的<#strong>(不是URL编码 )&#34; (强调我的)。

在添加路径组件之前,您最初是如何创建newFilePath的?例如,您应该使用其中一种方法&#34; [fF] ileURL&#34;在名称中。