zoukankan      html  css  js  c++  java
  • Swift基础--Swift中的异常处理

    Swift中的异常处理

    • OC中的异常处理:方法的参数要求传入一个error指针地址,方法执行完后,如果有错误,内部会给error赋值
    • Swift中的异常处理:有throws的方法,就要try起来,然后do {}catch {do中出现错误异常才执行这里的代码}进行处理

    • 格式:
            do {
    
                try 有throws的方法
    
            } catch {
    
            }
    
    
    • Swift中异常处理的三种方式

      • try : 正常处理,必须用到do {} catch {}
      • try! : 告诉系统一定没有异常,也就是说不用do catch来处理,开发中不建议用.一旦有异常,程序崩溃
      • try? : 告诉系统可能有异常,也可能没有异常.如果没有异常,系统会自动将结果包装成一个可选类型给你,如果有异常,系统会返回nil.如果使用try?可以不是同do catch进行处理
    • 项目中的代码

            do {
                let objc = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments) as! [[String : AnyObject]]
    
                // 3.遍历字典数组,创建子控制器
                for dict in objc {
    
                    guard let title = dict["title"] as? String else {
                        return
                    }
                    guard let vcName = dict["vcName"] as? String else {
                        return
                    }
                    guard let imageName = dict["imageName"] as? String else {
                        return
                    }
    
                    addChildViewController(vcName, title: title, normalImage: imageName)
                }
    
            } catch {
                // json数据异常,以默认方式创建控制器
    
                self .addChildViewController("HomeTableViewController", title: "首页", normalImage: "tabbar_home")
                self .addChildViewController("MessageTableViewController", title: "消息", normalImage: "tabbar_message_center")
                self .addChildViewController("NullViewController", title: "", normalImage: "")
                self .addChildViewController("DiscoverTableViewController", title: "发现", normalImage: "tabbar_discover")
                self .addChildViewController("ProfileTableViewController", title: "我", normalImage: "tabbar_profile")
    
            }
    
  • 相关阅读:
    Android 中类似ModelWindow的一个实现
    DIV的圆角表现和TAB切换
    Android SDK Manager Google Apis 下载
    Android ADT初始化失败
    2层Folder删除问题,父文件夹删不掉
    【转】Android使用Log4j例子
    编译和解释的区别
    局部变量和全局变量
    函数的几种参数
    格式化
  • 原文地址:https://www.cnblogs.com/gchlcc/p/5621994.html
Copyright © 2011-2022 走看看