swift学习-AnyObject类型记录

swift语言已经出来很久了,断断续续的也看了些资料,但是还没有真正的在项目中进行实践过,这次趁自己有空闲时间将公司的项目进行一次实践;

今天在写代码的时候,发现以前在OC中对象可以判断是否为nil,且OC中的通用类型使用id表示,而swift中有一个Any和AnyObject类型,而我今天在用AnyObject类型的时候,发现作为变量使用的时候,它可以进行判断是否为nil操纵,但是若作为返回值的时候是没法进行判断的,而其中的原因应该就是苹果在swift中的类型安全检查进行了升级,并且似乎对于函数的返回值必须存在值,不允许为空,所以再将其作为返回值的时候是不能对其进行为空判断的;

那么问题来了,我们并不能保证我们函数中所做的事情就一定会有内容返回,那这个时候我们该怎么处理?

我想到的解决办法就是函数的返回值定义为元组,比如(Bool,AnyObject),此时我们只需要判断那个Bool值是否为true即可,后面的值我们随便填写一个即可,如果有内容就填写真实内容,没有内容的时候随便填写,反正当Bool值为false的时候我们不取后面的值;这个时候就能完全规避判断我们函数返回的值是否真的存在内容问题,也规避了AnyObject为空的判断,同时也完美的使用到了AnyObject类型参数;

func getDataObject() ->(ishaveValue: Bool, data: AnyObject){

return (false, "")

}

let result = getDataObject()

if result.ishaveValue == true {

let data = result.data

}

后期继续对其进行研究!


若有更好的解决方法,望给出好的建议,不胜感激!谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lock颠颠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值