为什么这个Swift结构实例化会崩溃?

时间:2018-02-21 02:31:51

标签: ios swift

我有一个像这样的Swift结构<form id="myForm"> <input type="text" name="sentence1" id="st1" placeholder="Text here" required> <input type="text" name="sentence1" id="st2" placeholder="Text here" required> <input type="text" name="sentence1" id="st3" placeholder="Text here" required> <input type="text" name="sentence1" id="st4" placeholder="Text here" required> <input type="text" name="sentence1" id="st5" placeholder="This field is not required"> <button type="submit" id="submit-form">Submit</button> </form>

Reflection

struct Reflection { let title: String let body: String let author: String let favorite: Bool let creationDate: Date let id: UUID } extension Reflection { var plistRepresentation: [String: AnyObject] { return [ "title": title as AnyObject, "body": body as AnyObject, "author": author as AnyObject, "favorite": favorite as AnyObject, "creationDate": creationDate as AnyObject, "id": id as AnyObject ] } init(plist: [String: AnyObject]) { title = plist["title"] as! String body = plist["body"] as! String author = plist["author"] as! String favorite = plist["favorite"] as! Bool creationDate = plist["creationDate"] as! Date id = plist["id"] as! UUID } } class StorageController { fileprivate let documentsDirectoryURL = FileManager.default .urls(for: .documentDirectory, in: .userDomainMask) .first! fileprivate var notesFileURL: URL { return documentsDirectoryURL .appendingPathComponent("Notes") .appendingPathExtension("plist") } func save(_ notes: [Reflection]) { let notesPlist = notes.map { $0.plistRepresentation } as NSArray notesPlist.write(to: notesFileURL, atomically: true) } func fetchNotes() -> [Reflection] { guard let notePlists = NSArray(contentsOf: notesFileURL) as? [[String: AnyObject]] else { return [] } return notePlists.map(Reflection.init(plist:)) } } class StateController { fileprivate let storageController: StorageController fileprivate(set) var notes: [Reflection] init(storageController: StorageController) { self.storageController = storageController self.notes = storageController.fetchNotes() } func add(_ note: Reflection) { notes.append(note) storageController.save(notes) } func update(_ note: Reflection) { for (index, storedNote) in notes.enumerated() { guard storedNote.id == note.id else { continue } notes[index] = note storageController.save(notes) break } } } 中实例化这样的Reflection会导致我的应用崩溃:

viewWillAppear

我没有控制台输出,只是主线程SIGABRT错误。会发生什么事?

1 个答案:

答案 0 :(得分:0)

就像一个白痴一样,我正在清理我的代码,并注释掉了为重用标识符注册nib的行。但是,我认为如果Xcode可以为这样的错误打印出有用的错误消息会有所帮助。