我正在更新适用于 IOS9 和 Watch OS2 的应用程序。但是当我启动模拟器时,我在 watch 应用程序上出现 EXEC_BAD_INSTRUCTION (code=EXC_I386_INVOPE, subcode=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 呢?
最佳答案
您能否在确切的行上显示 Xcode 提供的确切错误消息?
您很有可能遇到以下任一情况
- 博客帖子中没有引用
- blogPosts 的下标 0 上没有引用(意味着 [0] 处没有任何内容)
- 没有对 .postArtist 或 .postTitle 的引用
从控制台获得确切的错误消息将有助于阐明这一点。
关于ios - 更新到 OS2 后 WatchKit EXEC_BAD_INSTRUCTION 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760575/