黑马程序员技术交流社区

标题: oc自定义构造方法时的返回值类型,大家进来讨论一下 [打印本页]

作者: 不想飞不到    时间: 2014-11-4 11:36
标题: oc自定义构造方法时的返回值类型,大家进来讨论一下
本帖最后由 不想飞不到 于 2014-11-4 11:50 编辑

有个疑惑,最新的xcode6.1中init的返回值类型是instancetype,而视频中是id类型,但是在视频中写自定义构造方法时采用的返回值是id,那么问题来了
到底选哪个呢?刚刚百度了这两者的区别,说是instancetype类型只能作为返回值类型,但是却可以动态识别你要返回的原对象相关的类型,而id类型只能返回任意类型的对象,这对后面程序的编译是不利的,也就说之前用id做返回类型的方法,现在优先采用instancetype类型更好,所以自定义构造方法返回值类型用instancetype是不是更好一些?





作者: 轮回    时间: 2014-11-4 12:31
这个不太清楚,好像是都可以吧,我用的时候没有什么区别,我也注意到这个了,,,,
可能是我接触到得情况太少吧
作者: 万雷    时间: 2014-11-4 12:51
都可以的  亲
作者: 易拉罐    时间: 2014-11-4 13:31
小弟,虽然还没有学习这一块,感觉很高深的样子,我也想听听别人的解释。
作者: 银河雨    时间: 2014-11-4 13:53
论用的话,其实都可以。但是我学的时候,老师建议是用instancetype,一般用在模型里面,或者类里面。返回需要的类型。
作者: nan46825    时间: 2014-11-4 14:41
还没学的那么深入
作者: atlas    时间: 2014-11-4 14:42
大家真是厉害啊。。。
作者: VicenteZ    时间: 2014-11-4 14:53
还没到那里,进来学习一下
作者: ch8898163    时间: 2014-11-4 14:59
你这个主要的还是版本问题,版本更新之后东西分的更细了。。。
作者: 雪寒    时间: 2014-11-4 15:32
应该都可以吧……
作者: Thinkin    时间: 2014-11-4 16:24
坐等回答
作者: staycolorful    时间: 2014-11-4 17:56
我也觉得都可以的
作者: atlas    时间: 2014-11-4 18:03
楼上好卡哇伊啊
作者: 小龟快跑驾    时间: 2014-11-4 18:42
学的好仔细呀!学习学习
作者: lanwen963    时间: 2014-11-4 19:24
应该都可以的,经验比较少,不过我试过声明用id,实现用instancetype都不会报错
作者: lanwen963    时间: 2014-11-4 19:37
http://blog.csdn.net/kuizhang1/article/details/18048829
可以去看下,如果是关联返回值类型都一样;如果是非关联返回值类型就instancetype好,能返回对象本身而id只能返回id类型。
instancetype不能作为行参的类型只能作返回值
作者: chenhuan_ccit    时间: 2014-11-4 20:04
不明觉厉
作者: strivess    时间: 2014-11-4 21:44
来学习了
作者: jinzhinan    时间: 2014-11-5 00:20
学习一下,共同进步
作者: caozhichao    时间: 2014-11-5 08:02
进来看看大神的世界
作者: doudou33420    时间: 2014-11-5 16:25
区别不太清楚,,  不过好像两者轮换使用都无大碍
作者: shenweisong123    时间: 2014-11-7 18:41
进来看看大神的世界
作者: wangxinwei    时间: 2014-11-7 19:01
进来看看大神的世界
作者: 杨鸿    时间: 2015-8-12 18:06
看来大家还是很厉害的
作者: 1312878967    时间: 2015-8-16 20:07
instancetype 看返回类型和接收类型是否一致
作者: Makeit    时间: 2015-11-22 22:50
牛牛牛...
作者: hanmaoChen    时间: 2016-8-11 20:44
id为万能指针,instancetype则是返回当前类的指针,返回值一般都是用instancetype的,更有针对性。虽然用id也是可以的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2