更新到OS2后,WatchKit EXEC_BAD_INSTRUCTION错误

时间:2015-09-24 11:50:24

标签: ios xcode swift apple-watch

我正在为IOS9和Watch OS2更新我的应用程序。但是当我启动模拟器时,我在Watch应用程序上看到EXEC_BAD_INSTRUCTION(代码= EXC_I386_INVOPE,子代码= 0x0)错误:

func update_nowplaying(){
    Artist.setText(blogPosts[0].postArtist)
    ArtistTitle.setText(blogPosts[0].postTitle)
}

当我将其更改为Artist.setText(“Hello”)和ArtistTitle.setText(“World”)时,它可以正常工作。

这里还有一些代码: 在BlogPost.swift中:

class BlogPost {
    var postArtist: String = String()
    var postTitle: String = String()
    var postTime: String = String()
}

XML解析器:

func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
    eName = elementName
    if elementName == "song" {
        postArtist = String()
        postTitle = String()
        postTime = String()
    }
}

func parser(parser: NSXMLParser, foundCharacters string: String?) {
    let data = string!.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    if (!data.isEmpty) {
        if eName == "artist" {
            postArtist += data
        } else if eName == "title" {
            postTitle += data
        } else if eName == "timeplayed" {
            postTime += data
        }
    }
}

func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    if elementName == "song" {
        let blogPost: BlogPost = BlogPost()
        blogPost.postArtist = postArtist
        blogPost.postTitle = postTitle
        blogPost.postTime = postTime
        blogPosts.append(blogPost)
        }}

我不明白。这个相同的代码安静在主应用程序和我的应用程序的先前版本中工作。那么为什么这不适用于OS2?

1 个答案:

答案 0 :(得分:0)

你能否在Xcode和确切的行上显示确切的错误信息?

您很有可能遇到以下任何一种

  • 参考blogPosts
  • 对于blogPosts的下标0没有引用(意思是,[0]没有)
  • .postArtist或.postTitle
  • 上的参考文献

从控制台获得确切的错误消息将有助于阐明这一点。