• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > (swift)为什么anyobject不能回传nil又是型态的问题

(swift)为什么anyobject不能回传nil又是型态的问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了swift nil,nil,stringp nil,nil是什么意思,stringp nil错误等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: (swift)为什么 anyobject 不能回传nil 又是型态的问题
描述:

哭哭 ,又是型态的问题

以下的 func 就是要让它 没有值的时候回传 nil 我就是要它回传nil 但,就是会报错,又不是NSMutabledictionary 或是 NSMutableArry 一定要有值,我已经指定是AnyObject (老师说 anyobject 是可以为 nil 的)

我该怎么让它回传nil呢

真心请教

func rtnChildArray(catno:Int) -> AnyObject {
    var rtn:AnyObject!
    for i in CateDictionary {
        let tmpNSMutableArry = NSMutableArray();
        if (i["catno"] as! NSString).integerValue == catno {
            rtn = i["child"]
            break
        }
        else {
            if (i.objectForKey("child") as! NSMutableArray).count > 0 {
                for j in (i.objectForKey("child") as! NSMutableArray) {
                    if (j["catno"] as! NSString).integerValue == catno {
                        print(j["child"])
                        rtn = j["child"]
                        break
                    }
                }
            
            }
        }
    }
    
    return rtn

}

解决方案1:

thanks all~

解决方案2:

func rtnChildArray(catno:Int) -> AnyObject? 加个问号
不忍心看你经常问,教程
此网站几乎是按照apple官网翻译来的,个人觉得还可以

解决方案3:

如楼上所述,在后面加个问号就可以回传 nil 了。原因是这样的:在 swift 里默认都是不可空的,不管是 AnyObject 还是 Int 还是任何自定义的类型,都必须要有非 nil 的值。除非指定它为 optional 类型。

// 凡是没有带 ? 或者 ! 的类型声明,都是不可空的
var normalInt: Int = 0
// 类型后面带 ?,显示声明它是可空的
var aNilableInt: Int?
// 类型后面带 !,隐式声明可空,跟 ? 的区别是这里是自动解包的,需要用的时候就不必须进行解包了
var anotherNilableInt: Int!

之所以这么设计,是为了让语言更安全,或者说在编译期就发现更多潜在的问题,如果有潜在的错误,就很容易编译不通过(比如给一个不能为 nil 的参数传了一个有可能为 nil 的值,或者你这里的这个情况,在一个不能返回 nil 的函数里返回了一个可能为 nil 的值等)。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • (swift)为什么anyobject不能回传nil又是型态的问题

相关文章

  • 2017-06-05 iOS10textfield输入中文时文字会下沉
  • 2017-06-05 iOS基础控件ios视频流问题
  • 2017-06-05 iOS16进制转UIImage
  • 2017-06-05 word遇到问题需要关闭Xcode8升级后遇到的问题
  • 2017-06-05 iOS与php序列化serialize与反序列化unserialize交互
  • 2017-06-05 APP上如何实现特定目的网络请求的转发和代理
  • 2017-06-05 用MJExtension,怎么写模型,根是字典,字典里有个数组,数组里面存放着几个不相同的字典模型
  • 2017-06-05 iOStableBarcontroller的tableBar切换视图后就不显示
  • 2017-06-05 iOS基础控件iOS关于存贮的小问题
  • 2017-06-05 一句oc代码转成swift

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • swift约束问题
    • 重庆自考管理系统web请问ios中,web照相图片的自动旋转是什么原因
    • 直播弹幕怎么做是有第三方继承还是自己写,要是自己写弹幕显示的速度和高度是怎么出来的?
    • 读取文件iOS持久化,读取本地文件数据导致程序崩溃
    • iOSframework热更新能通过审核吗
    • 求匹配字符串里中括号及里面的内容,替换成别的文本
    • chromeframeUIView动态改变frame
    • weexiOS关于weex的几个问题
    • iOS百度导航和百度语音静态库冲突如何解决?合并两个静态库出现Undefinedsymbols的问题该如何解决?
    • iOS如何获取手机上Mp3音乐文件

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有