HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Swift – 尝试将dict值读取为Int时的EXC_BAD_ACCESS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个这样定义的字典:

let path = NSBundle.mainBundle().pathForresource("books",ofType: "plist")
let Dict = NSDictionary(contentsOfFile: path)
let books = Dict.objectForKey("Books") as [[String:AnyObject]] 
let rnd = Int(arc4random_uniform((UInt32(books.count))))
let bookData = books[rnd]

为什么这样做?

let author = bookData["author"]! as String

但这会导致崩溃:

let chapterNum = bookData["chapterNum"]! as Int //should be 5,for example

bookData的日志给出了:

bookData: [content: whatever,author: John Doe,tags: (
    tagA,tagB
),chapterNum: 5]

解决方法

bookData [“chapterNum”]可能是String not Int

尝试

let chapterNum = Dict["chapterNum"] as? Int

如果类型不符合您的预期,您将获得nil

如果您从字典中获取字符串,则可以先获取该字符串并尝试将其转换为Int

var chapterNum = 0
if let chapterNumString = Dict["chapterNum"] as? String {
    if let chapterNumInt = chapterNumString.toInt()? {
        chapterNum = chapterNumInt
    }
}

如果您不希望稍后在该函数调用中处理可选的int值

大佬总结

以上是大佬教程为你收集整理的ios – Swift – 尝试将dict值读取为Int时的EXC_BAD_ACCESS全部内容,希望文章能够帮你解决ios – Swift – 尝试将dict值读取为Int时的EXC_BAD_ACCESS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。