gpt4 book ai didi

ios - NSFileCoordinator coordinateWritingItemAtURL 无法调用 'coordinateWritingItemAtURL'

转载 作者:可可西里 更新时间:2023-11-01 01:04:09 25 4
gpt4 key购买 nike

我试图在 NSFileCoordinator 中写入内容,但它抛出了一个错误。我尝试了几种方法,但都没有用。

我的代码:

private func saveValues(note :String){
fileCoordinator.coordinateWritingItemAtURL(presentedItemURL!, options: nil, error: nil, byAccessor: { (newUrl: NSURL!) in
self.notes.addObject(note)
let saveData = NSKeyedArchiver.archivedDataWithRootObject(self.notes)
let success = saveData.writeToURL(newURL, atomically: true)
})

fileCoordinator.coordinateWritingItemAtURL(presentedItemURL!, options: nil, error: nil) { ( newURL :NSURL!) -> Void in
self.notes.addObject(note)
let saveData = NSKeyedArchiver.archivedDataWithRootObject(self.notes)
let success = saveData.writeToURL(newURL, atomically: true)
}
print("===##==> ",note)
}

以上代码均失败。 enter image description here

整个代码看起来——

import UIKit

class UpdateViewController: UIViewController, NSFilePresenter {
@IBOutlet weak var lblView: UILabel!
@IBOutlet weak var tfInputField: UITextField!

var fileCoordinator = NSFileCoordinator()
var notes :NSMutableArray = NSMutableArray()
var presentedItemURL: NSURL? {
let groupURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.navigateproje")
let fileURL = groupURL?.URLByAppendingPathComponent("notes.bin")
return fileURL!
}

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

@IBAction func btnPressed(sender: UIButton) {
print("print ",tfInputField.text)
lblView.text = tfInputField.text
saveValues(tfInputField.text!)
}

private func saveValues(note :String){
fileCoordinator.coordinateWritingItemAtURL(presentedItemURL!, options: nil, error: nil, byAccessor: { (newUrl: NSURL!) in
self.notes.addObject(note)
let saveData = NSKeyedArchiver.archivedDataWithRootObject(self.notes)
let success = saveData.writeToURL(newURL, atomically: true)
})
fileCoordinator.coordinateWritingItemAtURL(presentedItemURL!, options: nil, error: nil) { ( newURL :NSURL!) -> Void in
self.notes.addObject(note)
let saveData = NSKeyedArchiver.archivedDataWithRootObject(self.notes)
let success = saveData.writeToURL(newURL, atomically: true)
}
print("===##==> ",note)
}

var presentedItemOperationQueue: NSOperationQueue {
return NSOperationQueue.mainQueue()
}
}

最佳答案

我解决了它-

https://forums.developer.apple.com/thread/9301

  fileCoordinator.coordinateWritingItemAtURL(presentedItemURL!, options: NSFileCoordinatorWritingOptions.ForMoving, error: &writingError, byAccessor: { (coordinator) in

self.notes.addObject(note)
let saveData = NSKeyedArchiver.archivedDataWithRootObject(self.notes)
let success = saveData.writeToURL(coordinator, atomically: true)
})

真正的问题是选项类型是 nil ,它必须是 NSFileCoordinatorWritingOptions.ForMerging 类型,

所以即使是下面的作品-

    fileCoordinator.coordinateWritingItemAtURL(presentedItemURL!, options: NSFileCoordinatorWritingOptions.ForMerging, error: nil) { ( newURL :NSURL!) -> Void in

self.notes.addObject(note)

let saveData = NSKeyedArchiver.archivedDataWithRootObject(self.notes)
let success = saveData.writeToURL(newURL, atomically: true)
}

关于ios - NSFileCoordinator coordinateWritingItemAtURL 无法调用 'coordinateWritingItemAtURL',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32811944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com