2015-03-06 20 views
5

Tôi đã chỉnh sửa tệp .plist. Làm thế nào tôi hiểu nó: vì sandboxing nó chỉ có thể đọc các tập tin bên trong các tập tin .playgrounds trong một thư mục Resources. Nhưng làm cách nào để ghi tệp đã chỉnh sửa vào thư mục này?Cách writeToFile trong một .playground?

// read file 
let xmlPath: String = NSBundle.mainBundle().pathForResource("Settings", ofType: "plist")! 
var xmlDictionary: [String : AnyObject] = NSDictionary(contentsOfFile: xmlPath) as Dictionary<String, AnyObject> 

// editing file 
// ... 

// saving file 
let saveDict: NSDictionary = xmlDictionary as NSDictionary 
let savePath: String = xmlPath.stringByDeletingLastPathComponent.stringByAppendingPathComponent("Saved.plist") 
saveDict.writeToFile(savePath, atomically: false) // ~> false 

savePath cũng không xmlPath đang làm việc, trả false nghĩa không thành công.

Sẽ thật tuyệt nếu tôi có thể thay thế phiên bản cũ (không chỉnh sửa) của tệp .plist, nhưng việc lưu vào tệp mới cũng sẽ ổn.

Trả lời

2

sửa đổi tệp trong gói chính dường như không thể, see earlier question. Những gì bạn có thể làm là để lưu vào thư mục ứng dụng sandbox, các URL mà có thể được lấy ra như thế này:

func applicationDirectory(directory:NSSearchPathDirectory) -> NSURL? { 

    var appDirectory:String? 
    var paths:[AnyObject] = NSSearchPathForDirectoriesInDomains(directory, NSSearchPathDomainMask.UserDomainMask, true); 
    if paths.count > 0 { 
     if let pathString = paths[0] as? String { 
      appDirectory = pathString 
     } 
    } 
    if let dD = appDirectory { 
     return NSURL(string:dD) 
    } 
    return nil 
} 



func applicationTemporaryDirectory() -> NSURL? { 

    if let tD = NSTemporaryDirectory() { 
     return NSURL(string:tD) 
    } 

    return nil 

} 

applicationTemporaryDirectory() 

applicationDirectory(NSSearchPathDirectory.DocumentDirectory) 

Các url sẽ hiển thị ở phía bên tay phải của sân chơi, sau đó chỉ cần sao chép và dán vào Finder -> Go -> Đi tới hộp thoại Thư mục.

GitHub Repo: Để có ví dụ hoạt động đầy đủ, hãy xem điều này GitHub repo.

Các vấn đề liên quan