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

}

后期继续对其进行研究!


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

你可能感兴趣的:(swift,AnyObject)