gpt4 book ai didi

ios - 在 Swift Playground 中创建 UIManagedDocument - 信号 SIGABRT 错误

转载 作者:行者123 更新时间:2023-11-29 02:38:06 25 4
gpt4 key购买 nike

我是编码新手,正在尝试构建我的第一个应用程序。

我正在尝试按照去年第 12 课 CS193 Standford iOS 类(class)中概述的步骤使用 Swift Playgrounds 创建一个 UIManagedDocument。它们位于 objective-c 中,我正在尝试将它们转换为 Swift。我花了一整天的时间用头撞墙试图找出我做错了什么:/

import UIKit
import CoreData


let fileManager = NSFileManager.defaultManager()
let directoryArray = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
let directoryUrl = directoryArray[0] as NSURL
let documentName = "MyDocument"
let url:NSURL = directoryUrl.URLByAppendingPathComponent(documentName)
var document = UIManagedDocument(fileURL: url)
var path:NSString = url.path!
println(path)

let context:NSManagedObjectContext = document.managedObjectContext

//document.openWithCompletionHandler(nil)


var fileExists = fileManager.fileExistsAtPath(path)

document.fileURL


document.saveToURL(url, forSaveOperation: UIDocumentSaveOperation.ForCreating, completionHandler: nil)

我收到一条错误消息“执行被中断,原因:信号 SIGABRT”。控制台输出似乎表明我创建的 URL 有问题,或者它为零,但我不确定为什么会这样。

/var/folders/tc/9f9rjh1d0pn2r1qbg4qhqbqw0000gn/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.MyPlayground-CB14C6DC-51ED-4C53-987E-4616DD3A09FA/Documents/MyDocument
2014-09-30 20:50:18.648 MyPlayground[11196:3191065] failed to get type for URL (file:///var/folders/tc/9f9rjh1d0pn2r1qbg4qhqbqw0000gn/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.MyPlayground-CB14C6DC-51ED-4C53-987E-4616DD3A09FA/Documents/MyDocument) error: The operation couldn’t be completed. (Cocoa error 260.)
2014-09-30 20:50:18.648 MyPlayground[11196:3191065] failed to get type for URL (file:///var/folders/tc/9f9rjh1d0pn2r1qbg4qhqbqw0000gn/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.MyPlayground-CB14C6DC-51ED-4C53-987E-4616DD3A09FA/Documents/MyDocument) error: The operation couldn’t be completed. (Cocoa error 260.)
2014-09-30 20:50:18.649 MyPlayground[11196:3191065] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL URLByAppendingPathExtension:]: component, components, or pathExtension cannot be nil.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001016bf3f5 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001031cabb7 objc_exception_throw + 45
2 CoreFoundation 0x00000001016bf32d +[NSException raise:format:] + 205
3 Foundation 0x00000001010ef39f -[NSURL(NSURLPathUtilities) URLByAppendingPathExtension:] + 78
4 UIKit 0x000000010201240d -[UIDocument saveToURL:forSaveOperation:completionHandler:] + 151
5 ??? 0x000000010cf2904c 0x0 + 4512190540
)
libc++abi.dylib: terminating with uncaught exception of type NSException

在我看来,在 Playground 上我创建的网址不为零,所以我真的迷路了。

我非常感谢任何帮助或建议:)非常感谢!

最佳答案

在此示例中,UIManagedDocument 没有可以传递给持久存储的模型配置。 UIManagedDocument 的文档说,“文档对象然后创建一个核心数据堆栈,用于使用应用程序主包中的托管对象模型访问文档的持久存储。”但在这种情况下,没有主包,也找不到对象模型。您可以在 Playground 内构建所有这些,但我不确定该怎么做。因此,这可能只是 playground 的限制,不允许您在那里尝试。

关于ios - 在 Swift Playground 中创建 UIManagedDocument - 信号 SIGABRT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119472/

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