2016-07-27 132 views
2

Ello!我正在使用swift作为语言,为mac制作笔记应用程序。我目前正在进行保存和加载功能,并且遇到了一个错误,我不知道如何解决。这里是有问题的代码:Xcode 7 Swift 2错误:线程1:EXC_BAD_INSTRUCTION(code = EXC_1386_INVOP,SUBCODE = 0X0)

import Cocoa 

class NoteViewController: ViewController { 

    @IBOutlet weak var notefield: NSTextField! 
    @IBOutlet weak var savenamefield: NSTextField! 
    @IBOutlet weak var loadnamefield: NSTextField! 

    @IBAction func save(sender: AnyObject) { 
     // The line below gets the error: Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0 
     NSUserDefaults.standardUserDefaults().setObject(notefield.stringValue, forKey: savenamefield.stringValue) 
    } 


    @IBAction func load(sender: AnyObject) { 
     var name = loadnamefield.stringValue; 
     var lnote = NSUserDefaults.standardUserDefaults().objectForKey(name) 
     notefield.stringValue = lnote as! String 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do view setup here. 
    } 

} 

我会做什么错?

+0

这很可能是非常喜爱的*意外发现零*错误。插座是否在Interface Builder中连接?第二个想法是:'load'方法中'lnote'是'nil'。顺便说一下,'NSUserDefaults'中有一个专用的'stringForKey'方法。 – vadian

+0

我不知道关于stringforkey。我可能会尝试。感谢您的推荐! –

+0

阅读文档并不伤害;-)有一些秘密可以发现...... – vadian

回答

0

我想通了。通过一些测试,我发现一切工作,直到我将notefield.stringValue添加到代码中。然后我意识到我有这个不同的窗口。代码覆盖3个不同的窗口,其中2个是弹出窗口。 notefield是我在主窗口代码中唯一的元素。我把所有的元素移动到同一个窗口,并重新编码了整个事物。我得到它使用以下代码很好:

import Cocoa 

class NoteViewController: ViewController { 

    @IBOutlet weak var notefield: NSTextField! 

    @IBOutlet weak var savenamefield: NSTextField! 

    @IBOutlet weak var loadnamefield: NSTextField! 

    @IBAction func save(sender: AnyObject) { 
     NSUserDefaults.standardUserDefaults().setObject(notefield.stringValue, forKey: savenamefield.stringValue) 
    } 

    @IBAction func load(sender: AnyObject) { 
     notefield.stringValue = NSUserDefaults.standardUserDefaults().objectForKey((loadnamefield?.stringValue)!) as! String 
    } 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do view setup here. 
    } 

} 

请注意,我只提供此代码作为指导。感谢您给予的帮助。

相关问题