A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© libra 中级黑马   /  2014-7-3 17:22  /  2018 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何修改init方法?

18 个回复

倒序浏览
你说的是一种叫单例的设计模式。这个在java中很容易实现:
1. 私有的构造函数
2. 私有的本类类型的静态变量
3. 公开的静态方法返回2中的私有静态变量
建议你暂时还是不要在OC中考虑这个问题了,因为OC中的方法,包括构造函数不能私有,要实现单例涉及到一些底层的东西
回复 使用道具 举报
fantacyleo 发表于 2014-7-3 18:11
你说的是一种叫单例的设计模式。这个在java中很容易实现:
1. 私有的构造函数
2. 私有的本类类型的静态变量 ...

哥,这是我入学测试一道题。
回复 使用道具 举报
libra 发表于 2014-7-3 20:37
哥,这是我入学测试一道题。

那就无视1、3,直接设置一个本类类型的静态变量,创建对象来到init方法时,直接返回这个静态变量就好了
回复 使用道具 举报
fantacyleo 发表于 2014-7-3 21:09
那就无视1、3,直接设置一个本类类型的静态变量,创建对象来到init方法时,直接返回这个静态变量就好了 ...

哥,oc 也有静态变量? 还是个对象类型?
回复 使用道具 举报
libra 发表于 2014-7-3 21:12
哥,oc 也有静态变量? 还是个对象类型?

.m文件的@implementation 之前是可以用static关键字定义静态变量的
回复 使用道具 举报
我也有这题  貌似黑马的视频没讲这个   没办法 网上找了个视频学习了才做的。。。
回复 使用道具 举报
疯狂ios教程里面就有
回复 使用道具 举报
522049094 发表于 2014-7-3 23:42
疯狂ios教程里面就有

求连接~
回复 使用道具 举报
我是自己买的书,我看的书籍。书上面就有啊!入学测试题你拿到这里来问不合适吧,难道要别人直接告诉你答案?
回复 使用道具 举报
522049094 发表于 2014-7-3 23:48
我是自己买的书,我看的书籍。书上面就有啊!入学测试题你拿到这里来问不合适吧,难道要别人直接告诉你答案 ...

{:3_58:}不是,求提示,求思路。。
回复 使用道具 举报
徐开伟 发表于 2014-7-3 23:31
我也有这题  貌似黑马的视频没讲这个   没办法 网上找了个视频学习了才做的。。。 ...

哪个视频?有没有连接?我也去学习学习。
回复 使用道具 举报
你去百度搜疯狂ios教程啊!是另外一个培训机构出的,中文书中是卖的最好的。我勉强通过入学了,现在就在看这本书。也不算什么好书,但是自己基础很一般,就拿来看看
回复 使用道具 举报
这个题实际上就是要求实现单例。如果是java,7、8行就写好了。不过oc的方法不能私有,创建对象还分alloc和init两个阶段,这就坑爹坑惨了。百度了一下,要做这题,至少要重写allocWithZone、getInstance这两个底层方法。
回复 使用道具 举报
libra 发表于 2014-7-3 23:49
不是,求提示,求思路。。

qq吧,我的522049094
回复 使用道具 举报
libra 发表于 2014-7-3 23:49
不是,求提示,求思路。。

我只有晚上qq才在线啊
回复 使用道具 举报
522049094 发表于 2014-7-4 07:12
我只有晚上qq才在线啊

{:3_65:}你设置拒绝加好友。。
回复 使用道具 举报
每太明白你说的什么意思?能详细点不?
回复 使用道具 举报
那我加你吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马