gpt4 book ai didi

ios - "uncaught exception"是什么?

转载 作者:行者123 更新时间:2023-11-28 10:56:49 27 4
gpt4 key购买 nike

<分区>

我正在尝试构建一个简单的 iPhone 应用程序,使用 UITextView 和 UIButton 将用户输入的文本保存到 iCloud。我从来没有做过这样的事情,所以我正在关注 this tutorial .到目前为止,他们的教程对我来说是完美无缺的,直到这一个。该应用程序构建良好,并在我的 iPhone 上运行,显示一个输入文本的位置,以及一个将文本保存到 iCloud 的按钮。但是当我点击屏幕输入文本时,应用程序崩溃并显示以下消息:

2017-03-24 08:45:56.093572 Gaethr2[6342:1419021] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSMetadataQuery valueOfAttribute:forResultAtIndex:]:索引 (0) 越界 (0)'*** 首先抛出调用栈:(0x184b611b8 0x18359855c 0x184b61100 0x1855f1460 0x100056ffc 0x10005857c 0x184afab10 0x184afa214 0x184af9f90 0x184b69b8c 0x184a3be64 0x185570e0c 0x1855ef268 0x184afab10 0x184afa214 0x184af9f90 0x184b69b8c 0x184a3be64 0x185570e0c 0x1968d93e4 0x1968db29c 0x184b0ea44 0x184b0e240 0x184b0c094 0x184a3a2b8 0x1864ee198 0x18aa817fc 0x18aa7c534 0x10005b720 0x183a1d5b8)libc++abi.dylib:以 NSException 类型的未捕获异常终止来自调试器的消息:未能发送第 k 个数据包

这是 ViewController 代码:

import UIKit

class ViewController: UIViewController
{
@IBOutlet weak var textView: UITextView!

var document: MyDocument?
var documentURL: URL?
var ubiquityURL: URL?
var metaDataQuery: NSMetadataQuery?



func metadataQueryDidFinishGathering(notification: NSNotification) -> Void
{
let query: NSMetadataQuery = notification.object as! NSMetadataQuery

query.disableUpdates()

NotificationCenter.default.removeObserver(self,
name: NSNotification.Name.NSMetadataQueryDidFinishGathering,
object: query)

query.stop()

let resultURL = query.value(ofAttribute: NSMetadataItemURLKey,
forResultAt: 0) as! URL

if query.resultCount == 1 {
let resultURL = query.value(ofAttribute: NSMetadataItemURLKey,
forResultAt: 0) as! URL

document = MyDocument(fileURL: resultURL as URL)

document?.open(completionHandler: {(success: Bool) -> Void in
if success {
print("iCloud file open OK")
self.textView.text = self.document?.userText
self.ubiquityURL = resultURL as URL
} else {
print("iCloud file open failed")
}
})
} else {
document = MyDocument(fileURL: ubiquityURL!)

document?.save(to: ubiquityURL!,
for: .forCreating,
completionHandler: {(success: Bool) -> Void in
if success {
print("iCloud create OK")
} else {
print("iCloud create failed")
}
})
}
}



override func viewDidLoad()
{
super.viewDidLoad()

let filemgr = FileManager.default

ubiquityURL = filemgr.url(forUbiquityContainerIdentifier: nil)

guard ubiquityURL != nil else {
print("Unable to access iCloud Account")
print("Open the Settings app and enter your Apple ID into iCloud settings")
return
}

ubiquityURL = ubiquityURL?.appendingPathComponent(
"Documents/savefile.txt")

metaDataQuery = NSMetadataQuery()

metaDataQuery?.predicate =
NSPredicate(format: "%K like 'savefile.txt'",
NSMetadataItemFSNameKey)
metaDataQuery?.searchScopes =
[NSMetadataQueryUbiquitousDocumentsScope]

NotificationCenter.default.addObserver(self,
selector: #selector(
ViewController.metadataQueryDidFinishGathering),
name: NSNotification.Name.NSMetadataQueryDidFinishGathering,
object: metaDataQuery!)

metaDataQuery!.start()
}

@IBAction func saveDocument(_ sender: AnyObject)
{

document!.userText = textView.text

document?.save(to: ubiquityURL!,
for: .forOverwriting,
completionHandler: {(success: Bool) -> Void in
if success {
print("Save overwrite OK")
} else {
print("Save overwrite failed")
}
})
}

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


}

这是 MyDocument.Swift 的代码

import UIKit

class MyDocument: UIDocument
{
var userText: String? = "Some Sample Text"

override func contents(forType typeName: String) throws -> Any
{
if let content = userText
{

let length =
content.lengthOfBytes(using: String.Encoding.utf8)
return NSData(bytes:content, length: length)
}
else
{
return Data()
}
}

override func load(fromContents contents: Any, ofType typeName: String?) throws
{
if let userContent = contents as? Data
{
userText = NSString(bytes: (contents as AnyObject).bytes,
length: userContent.count,
encoding: String.Encoding.utf8.rawValue) as? String
}
}
}

这是崩溃的屏幕截图:

enter image description here

感谢您的帮助!

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