免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: rover12421
打印 上一主题 下一主题

[iOS] [分享有奖]谈谈你在Objective-C中遇到过的坑(获奖名单已公布-2014-4-21) [复制链接]

论坛徽章:
39
白银圣斗士
日期:2015-11-24 10:40:40酉鸡
日期:2015-03-20 14:15:44寅虎
日期:2015-03-20 14:13:59午马
日期:2015-03-20 14:13:16白羊座
日期:2015-03-20 14:12:54金牛座
日期:2015-03-20 14:12:09双子座
日期:2015-03-20 14:11:57巨蟹座
日期:2015-03-20 14:11:44狮子座
日期:2015-03-20 14:11:29亥猪
日期:2015-03-20 14:16:24戌狗
日期:2015-03-20 14:16:40申猴
日期:2015-03-20 14:17:05
21 [报告]
发表于 2014-04-04 20:17 |只看该作者
回复 20# substr函数


    能否具体说一两个呢?

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
22 [报告]
发表于 2014-04-05 04:00 |只看该作者
主题就够坑的,“淡淡”还是谈谈啊 ?

评分

参与人数 1可用积分 +5 收起 理由
rover12421 + 5 非常感谢

查看全部评分

论坛徽章:
0
23 [报告]
发表于 2014-04-05 14:24 |只看该作者
  继续学编程才是王道

论坛徽章:
39
白银圣斗士
日期:2015-11-24 10:40:40酉鸡
日期:2015-03-20 14:15:44寅虎
日期:2015-03-20 14:13:59午马
日期:2015-03-20 14:13:16白羊座
日期:2015-03-20 14:12:54金牛座
日期:2015-03-20 14:12:09双子座
日期:2015-03-20 14:11:57巨蟹座
日期:2015-03-20 14:11:44狮子座
日期:2015-03-20 14:11:29亥猪
日期:2015-03-20 14:16:24戌狗
日期:2015-03-20 14:16:40申猴
日期:2015-03-20 14:17:05
24 [报告]
发表于 2014-04-05 21:14 |只看该作者
回复 22# reyleon


    居然这么久都没人发现.非常感谢您的提醒!!!

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
25 [报告]
发表于 2014-04-08 13:11 |只看该作者
还是感觉GO更NB,不愧是顶级牛人们设计的!!!

论坛徽章:
0
26 [报告]
发表于 2014-04-10 11:25 |只看该作者
本人混迹IT圈,低级码农一枚,一直用着C/C++在windows平台混口饭吃讨生活。业余时间玩玩
python,在流行table标签用于布局的年代写过html和javascript。
前段时间,开始啃Objective-C和Cocoa,目前水平处于改过俩X OS系统下的应用程序,能用XCode写,编,调,搜ADC和google能自己弄懂一些问题。正努力成为一个合格的大苹果开发人员,为我大iOS系统添砖加瓦。
以下是我作为一个C/C++半瓶子咣当水平的程序员,在学习OC时的心得,**由于个人水平尚浅,有错在所难免
所以不保证内容都是正确的,欢迎斧正。**
= = = = = 我是废话分割线 = = = = = =
* 环境
  + 买一台苹果机,不要在虚拟机安装黑苹果或其他跨平台库上浪费时间,既然想学苹果开发,直接上一台苹果机,不仅能节约学习时间,并且绝对物超所值。
  + 一定要熟悉ADC(Apple Developer Center)的文档,书籍能帮你快速入门,入门后的继续修行都靠文档了。
  + 看本英文版的OC教程,这样你就能知道通过什么关键字去ADC上找你想要的答案了。
* Objective-C 对 C的扩展
+ 用#import代替C中的#include
+ NSLog()函数代替C中的printf()函数
+ 尽量使用NSString避免使用char str[]字符串数组,@""来表示静态字符串,%@用于打印
+ BOOL布尔类型 YES为真 NO为假
* Objective-C的面向对象范式编程
+ self 指代自身
+ NSObject为root
+ 类声明和实现的语法规则,定义函数的时候参数之间要多用介词(from, to, by, at, with)加名词
+ 不支持多重继承
* 基础框架
+ NSRange,NSSize,NSPoint,NSRect都是结构体,用浮点表示,NSRect是个NSPoint和NSSize不是left,top,right,bottom
+ 基本数据类型:string, array, dictionary。善用array替换数组。
* 高内聚低耦合,远离继承,善用组合和类别
* Objective-C 的内存管理
+ 内存管理分两种,垃圾收集(GC)和引用计数(RC),其中引用计数又分为两种,自动引用计数(ARC)和手动引用计数(MRC)。
+ GC是运行时。ARC是编译时。RC是人肉时。RC是基础,ARC是福利,编译前自动为代码加入retain/release/autorelease。GC高级货,兼容了iOS再学也不迟(其实也不用学。。。)。
+ RC的规则
  - retain和release配对使用
  - alloc/new/copy后用完要调用release
  - autorelease 将对象放入pool里pool被release的时候通知pool中的对象调用release。如作为函数返回对象使用。
* 属性:就是个封装用的语法糖
+ @dynamic 人肉写
+ @synthesize 自动填充
   - assign retain copy
   - readwrite,readonly
   - atomic nonatomic
* 类别,只能扩展函数,命名冲突时,类别优先。用于分隔类的实现,创建私有属性,加入协议到对象中。
* 协议和委托:委托就自己不处理,交给别人处理,为了保证别人能处理要跟别人定个协议。
* 深拷贝和浅拷贝,浅拷贝是引用,深拷贝是创建新的对象

评分

参与人数 1可用积分 +5 收起 理由
rover12421 + 5 赞一个!

查看全部评分

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
27 [报告]
发表于 2014-04-14 15:48 |只看该作者
nsdate永远存的格林威治时间,输出时选择时区,曾经被坑过。
狠狠滴读了一通RC,然后出了个ARC。
难看的数组付初值,认了,然后出了个虾米语法糖,我去。
。。。然后又不用objective c了

评分

参与人数 1可用积分 +5 收起 理由
rover12421 + 5 神马都是浮云

查看全部评分

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34双子座
日期:2014-03-02 00:11:39fulanqi
日期:2016-06-17 17:54:25
28 [报告]
发表于 2014-04-15 11:15 |只看该作者
首先我得说明,我不擅长Objective-C开发。去年接到的一个外包项目,要做一个多设备的协同应用。其中要做Android版和iPhone/iPad版。我们部门有Android团队,这一点很容易满足。而iPhone/iPad版就很麻烦了,我们还没有建立这样的开发团队。后来是我带着两位具有专研精神的软件工程师搞定了iPhone应用的第一版。总的来说,做得不好,实现了基本的功能,Bug不少。后来把这个工作逐步移交给专门的iOS团队了。
在整个Objective-C开发的期间,确实遇到过一些“坑”。
1)遇到过命名空间的冲突
Objective-C没有命名空间,Everything都在一个全局的命名空间中。
要避免命名空间冲突,采用加前缀的方法,而且前缀的字符数可以适当长一些。
2)不能初始化类对象
为超类写一个默认的构造器
3)APP运行缓慢
使用僵尸对象调试内存管理,打开Xcode->Product->Scheme->Edit Scheme,勾选Enable Zombie Objects,设置完成后,系统会将已经回收的实例转换为“僵尸对象”,而不会真正回收它们,如果向僵尸对象发送消息,那么控制台会输出:message  sent to deallocated instance 0x9ad633b12a07
……

评分

参与人数 1可用积分 +5 收起 理由
rover12421 + 5 赞一个!

查看全部评分

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
29 [报告]
发表于 2014-04-16 13:06 |只看该作者
2013年,学习过一段时间的Objective-C的开发,主要是在回老家的大巴车上进行学习的。一开始接触,感觉OB的语法各种各样的符号太多了,有点头疼。但硬着头皮记得了,也就那么一回事,也在xcode上面写过一些demo,因为只是写一些demo,所以还没有遇到什么坑。但现在已经有7,8个月没有使用OC了

论坛徽章:
39
白银圣斗士
日期:2015-11-24 10:40:40酉鸡
日期:2015-03-20 14:15:44寅虎
日期:2015-03-20 14:13:59午马
日期:2015-03-20 14:13:16白羊座
日期:2015-03-20 14:12:54金牛座
日期:2015-03-20 14:12:09双子座
日期:2015-03-20 14:11:57巨蟹座
日期:2015-03-20 14:11:44狮子座
日期:2015-03-20 14:11:29亥猪
日期:2015-03-20 14:16:24戌狗
日期:2015-03-20 14:16:40申猴
日期:2015-03-20 14:17:05
30 [报告]
发表于 2014-04-16 15:22 |只看该作者
回复 29# beyondfly


    也可以说说你的学习心得哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP