调用C的SDK,返回c_ajax返回long类型数据,可以保存到临时变量中,也可以打印,为什么其他访问则报segm

&p&更新。&/p&&p&这次答案的更新主要想把此答案 &/p&&br&&p&-------------
-------------&/p&&p&反对以上所有答案。&/p&&p&我反对理由如下:不管是斯坦福大学的CS193p公开课、苹果官方文档、绝大多数市场上庞杂的教学书籍都不是很适合入门同学看,&b&想入门的话应该选用学习成本最低的方法,从最最基本开始讲起,并不是一味的讲解语法与知识,而是一边实践一边学习知识才是最好的学习方法。&/b&&/p&&p&并且我想告诉题主,你问的是iOS 开发怎么入门,但是你补充说明里说道的设计模式、内存管理等内容暂时不用你关心,等你真正iOS入门了以后在研究吧。也许我可以这么定义你的问题:&/p&&p&一个&b&略懂编程&/b&的人并且&b&完全没有接触过IOS开发&/b&的人想要学习IOS开发应如何学习?&/p&&br&&p&(一)objective-c语言开发iOS应用&/p&&ol&&li&&b&为什么不让初学者看斯坦福教程&/b&:我以为,斯坦福大学IOS公开课不适合入门的同学看,里面第一课讲解的就是MVC模式。对于一个刚入门想要学习的IOS的同学可能就完全懵了,心里想:“我特么第一课都听不懂我后面还学个P啊”。如果以前没接触过面向对象的语言学习的热情肯定大打折扣。
&/li&&li&&b&为什么不让初学者看苹果官方文档&/b&:苹果文档是学习iOS最权威的教程,许多许多iOS高手都是常年抱着它去看,但是我觉得它的内容虽然权威但example对初学者一点都不友好,相信你很快就会失去兴趣与耐心因为你光看了好多语法但是收不到的学习效果反馈。而且个人认为中文译文翻译不是令初学者很容易理解。初学阶段,教程的易理解程度我认为是非常重要的一点。(实在要看请看英文原版。)
&/li&&/ol&&br&&p&我不否认以上两者是极好的学习材料,如果你入门了iOS开发并且有一定的英文功底,我是非常推荐你去看的,尤其官方文档,应该经常翻阅。但是我认为&b&保持学习的热情是最重要的&/b&。本着这个理念,我推荐的学习方法难度非常低,希望你们能满意。&/p&&ul&&li&第一阶段: RayWenderlich网站中的 The iOS Apprentice教程
&/li&&/ul&&img src=&/96f96cef2cca7fa79d693a_b.jpg& data-rawwidth=&646& data-rawheight=&560& class=&origin_image zh-lightbox-thumb& width=&646& data-original=&/96f96cef2cca7fa79d693a_r.jpg&&&p&这个教程截止目前已经不更新OC语言的版本了,但是如果你是抱着求职为目的的学习还是请看OC版本的(两年前的版本)。The iOS Apprentice的教程针对完全没有编程经验的人设计。这个教程是外国人写的并且有免费试读版,感兴趣的人要看看。里面说的东西都非常非常基本,里面一个共讲解了4个不同类型app,强烈建议一步一步按照上面所写的步骤敲一遍代码。其中你会遇到很多复杂的语句和长的可怕的函数,你不用感到恐慌,照着敲,知道它干嘛用完全OK了,随着你编程时间以及经验的增加,你都会懂得。&/p&&p&附链接:&a href=&///?target=http%3A///store/ios-apprentice& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/store&/span&&span class=&invisible&&/ios-apprentice&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&注:这个教程是英文原版,并且收费,只免费提供一个app的教程。如果看完了这个免费的教程觉得还挺想继续学的请参考 &a class=&member_mention& href=&///people/4c9dd7ce259e3e6ae2f0fa6ca42801ee& data-hash=&4c9dd7ce259e3e6ae2f0fa6ca42801ee& data-hovercard=&p$b$4c9dd7ce259e3e6ae2f0fa6ca42801ee&&@王寒&/a&
老师的翻译教程(只有前3个app教程,第4个教程刚出,国内应该还没有人翻译,如果想看只能付费)。PS:(现在开发iOS应用基本都是用Objective-C,至于刚出来的Swift现阶段暂时不推荐学习,如果想了解王寒老师也做了swift版本的The iOS Apprentice教程翻译,自己去找)
附上王寒老师教程下载地址:&a href=&///?target=https%3A///eseedo/kidscoding& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/eseedo/kidsc&/span&&span class=&invisible&&oding&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&ul&&li&第二阶段:培训班的网络课程及入门书籍&/li&&/ul&&p& 经过第一个阶段你应该已经大致掌握IOS开发流程,能编写一个非常简单的应用了。这时候相信你的热情应该会很高涨,但接下来的学习可能会很枯燥,做好准备。网络课程的话推荐李明杰的课程,不推荐其他的。(他目前在广州创业建立自己的培训品牌,没有自制力看网络课程的请去找他。杰哥开源了一些非常优秀的框架如:MJExtension )之所以不推荐其他培训班是因为优秀讲师实在是少的可怜,至少我目前接触过的人来说,许多人都是刚从培训班出来就拿着不菲的薪水去当讲师,所以还不如自己学。&/p&&p&
建议首先要恶补基础知识。经过第一个阶段你可能觉得你懂不少了,但是只是表面,尤其是没学过编程的应该好好学习一下视频前面的课程,主要看看语法。等你看恶心了看烦了就去看视频里UI部分,这里相对于来说比较轻松,一定要把视频里写的语句打一遍,相信这样你理解会更深刻。里面说的不清楚的地方上网可以百度,可以查书(如果你有书的话)。&/p&&p&Q:视频教程是用来做什么的?
A:光有实践没有知识是写不好程序的,第一阶段基本都是实践,第二部分则是用来查缺补漏。
之所以推荐网络课程是因为讲解的比较系统,各种入门知识都会涉及。因为iOS所涉及内容庞
大单看几本书还是涉及不全的。&/p&&p&Q:上不上培训班?
A:个人意见是不推荐去,&b&自学足够了。&/b&现在学习iOS的环境比前几年好太多了,光凭借网上的资料是
完全可以的学得很好的,如果你连这点学习能力还没有我也不相信你将来能成为一个很优秀的工程师。而且你会发现在社会上一些互联网公司是拒绝接收培训班出来的人,如果你简历造假被揭穿以后会更要命,你当真不知道面试官看不出你水平到底是学了4个月的还是2年的么?&/p&&p&推荐入门书籍:
tips:以下所有书籍有英文版看&b&英文版&/b&,有最新版看最新版。不光是iOS,你只要进了编程圈你的英文不好会很大程度上限制你的发展。而且市面上能买到的中文教程真的没几本能看的,浑水摸鱼的厉害。&/p&&p&1、《iOS Programming》&/p&&img src=&/a42f20a39f8296caf7d52b2d7daf58fd_b.png& data-rawwidth=&244& data-rawheight=&347& class=&content_image& width=&244&&&br&&p&2、《iOS 8应用开发入门经典》&/p&&p&我没找到最新,如果有最新的看最新的&/p&&img src=&/ad68d55dd815d_b.png& data-rawwidth=&283& data-rawheight=&350& class=&content_image& width=&283&&&br&&p&3、《iOS编程实战》&/p&&img src=&/4e3a39a9dea22871dc29c_b.png& data-rawwidth=&284& data-rawheight=&350& class=&content_image& width=&284&&&p&这本书好像也没新的了,旧的可以看看,绝大部分都差不多。&/p&&p&其实除了这基本书还有很多质量很好的书(比如封面都是水果类的哪些书)..
这里我想多说一句,买iOS开发的辅导书&b&&u&千万别买过时太久&/u&&/b&的,我看以上有答案还推荐iOS4系列丛书呢...拜托现在都什么年代了,现在iOS8教程都要出来了,你iOS6的教程都过时好久了更别提iOS4了...对于新出的swift语言好多人难以选择不知道该学OC好还是Swift好。我个人建议现在学OC,一门新语言的诞生需要经过时间的考验与洗礼。等你学好了OC以后再看也不迟。&/p&&ul&&li&第三阶段及以后&/li&&/ul&&p&
到这个阶段你应该拥有了充分的自学能力,已经达到了入门水平。
这时候以下网址将成为你的家常便饭:
Github,StackOverFlow
如果你编程遇到困难,在StackOverFlow上面应该都能找到合适的解答。(前提是你英文不要太差)。Github上好多开源代码足够丰富你的眼界。如果你想成为一个iOS开发者的话这上面两个网站是你经常以及必须会用到的。&/p&&br&&p&Github上怎么搜牛人们的项目:&/p&&img src=&/5a6b3c8aa85_b.jpg& data-rawwidth=&425& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&425& data-original=&/5a6b3c8aa85_r.jpg&&&br&&br&&br&&p&到此为止你的入门已经结束了,相信你已经知道怎么开发一个App出来了,但是我还想给大家介绍一些东西,如果你以后想在iOS开发这条道路上越走越远的话。&/p&&p&----------------------------
---------------------------&/p&&p&因为iOS开发知识更新速度非常之快,每年到6-7月份WWDC大会开幕以后都会有很多新东西要学,这时候最简单的方法有两个:&/p&&p&(1) WWDC session系列视频。 &/p&&a href=&///?target=https%3A///videos/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/vid&/span&&span class=&invisible&&eos/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&img src=&/c8add3b5131f0_b.png& data-rawwidth=&1012& data-rawheight=&406& class=&origin_image zh-lightbox-thumb& width=&1012& data-original=&/c8add3b5131f0_r.png&&&br&&p&(2) iOS by Tutorials&/p&&img src=&/d358d4c08a236eddbb144c_b.png& data-rawwidth=&312& data-rawheight=&398& class=&content_image& width=&312&&&p&所有新特性囊括其中。&/p&&p&3、其他适配系列教程
&a href=&///?target=https%3A///ChenYilong& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ChenYilong&i class=&icon-external&&&/i&&/a&的github上每次有新特性介绍的时候都会有详细的适配系列文章,不知道今年还写不写。
&a href=&///?target=https%3A///ChenYilong/iOS9AdaptationTips& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - ChenYilong/iOS9AdaptationTips: iOS9适配系列教程(iOS9开发学习交流群:)&i class=&icon-external&&&/i&&/a&&/p&&p&想学一点UI的同学可以看:&/p&&p&1、design+code
网址:&a href=&///?target=https%3A//designcode.io/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&designcode.io/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&img src=&/cdd14b201c5eb52329f50c_b.png& data-rawwidth=&365& data-rawheight=&334& class=&content_image& width=&365&&&br&&p&2、《DESIGN TEARDOWNS》&/p&&img src=&/302e6afe8ecad6b43b09afd5fffac121_b.png& data-rawwidth=&302& data-rawheight=&349& class=&content_image& width=&302&&&br&&br&&br&&p&想学一点动效/交互的同学可以看:&/p&&p&1、下载QuartzComposer及相关插件如Origami,教程: &a href=&///?target=http%3A//wayfinder.is/martinrgb/Quartz-Composer--/bfdb& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Quartz Composer学习&i class=&icon-external&&&/i&&/a&&/p&&img src=&/4f2274265fca2a6b383b6d5a0650db2d_b.png& data-rawwidth=&699& data-rawheight=&460& class=&origin_image zh-lightbox-thumb& width=&699& data-original=&/4f2274265fca2a6b383b6d5a0650db2d_r.png&&&br&&br&&p&其他推荐网站:&/p&&p&1、&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&NSHipster&i class=&icon-external&&&/i&&/a&&/p&&img src=&/7c90f305dacc5bb1378aeb_b.png& data-rawwidth=&967& data-rawheight=&249& class=&origin_image zh-lightbox-thumb& width=&967& data-original=&/7c90f305dacc5bb1378aeb_r.png&&&br&&p&进价书单:&/p&&p&0、《REVCON》&/p&&p&又是一本Ray的书。这本书刚刚推出,内容非常好里面有800多页干货,都是以tips形式进行归纳。&/p&&img src=&/ea921bbee3d8c3c7bd167_b.png& data-rawwidth=&357& data-rawheight=&237& class=&content_image& width=&357&&&br&&p&1、《Effective Objective-C 2.0》(必看)&/p&&img src=&/dad6ebd70ea1d_b.png& data-rawwidth=&351& data-rawheight=&344& class=&content_image& width=&351&&&img src=&/aeabf1cbf14de06d31bc7_b.png& data-rawwidth=&284& data-rawheight=&345& class=&content_image& width=&284&&&p&下面是中文版,翻译不好,点名批评。&/p&&p&2、《Objective-C高级编程 iOS与OS X多线程和内存管理》(必看)&/p&&img src=&/ae1eaa97539_b.png& data-rawwidth=&284& data-rawheight=&329& class=&content_image& width=&284&&&p&日本人写的一本书,推荐看。&/p&&p&3、《iOS开发进阶》&/p&&img src=&/66df832db2aa1a7c8d7acbf_b.png& data-rawwidth=&301& data-rawheight=&351& class=&content_image& width=&301&&&p&很多人吐槽这本书没干货,其实我觉得你看完了以后有收获就好了啊,这本书巧哥会告诉你一些编程工具一些技巧以及一些tips。&/p&&p&4、《iOS应用逆向工程》&/p&&img src=&/9d62fdafa5bf74a22716bf_b.png& data-rawwidth=&275& data-rawheight=&353& class=&content_image& width=&275&&&br&&p&5、《iOS应用安全攻防实战》&/p&&img src=&/13d1e380d565d756548ead5fc438778a_b.png& data-rawwidth=&281& data-rawheight=&348& class=&content_image& width=&281&&&p&iOS安全方面推荐以上两本书&/p&&p&6、《iOS》&/p&&img src=&/3c4be5a66dee0d8d4fb4cdc80ae2cec4_b.png& data-rawwidth=&260& data-rawheight=&354& class=&content_image& width=&260&&&br&&br&&p&
推荐博客及网站:
1、Github:&a href=&///?target=https%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&
2、StackOverFlow:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&
3、Code4App:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&
4、cocoachina:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&
5、objc中国:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&ul&&li&进阶博客(排名不分先后..)&/li&&/ul&&p&1、王巍的博客(我们都叫它喵神,他很萌哒)
链接:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&
理由:他的swift的新书讲解的非常好,但不适合入门,进阶的话这是很适合的一本书。其他关于OC的内容可以翻看喵神的博客。
2、唐巧哥的技术博客
链接: &a href=&///?target=http%3A///blog//ios-levelup-tips/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS开发如何提高&i class=&icon-external&&&/i&&/a&
理由:据传说是iOS圈的刘德华。巧哥05年1月会出一本进阶的书,可以关注以下。
3、叶孤城的技术博客 :
链接:&a href=&///?target=http%3A///p/99e8b3f6f377& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&叶孤城带你读源码之RESideMenu&i class=&icon-external&&&/i&&/a&
理由:叶孤城童鞋的风格就是讲解细腻,通俗易懂。
4、破船之家:
链接:&a href=&///?target=http%3A///blog/archives/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& 的页面&i class=&icon-external&&&/i&&/a&
理由:破船的博客内容很全面,一些开发笔记,技巧他都会教给你。
5、Xcode Dev
链接: &a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Xcode Dev&i class=&icon-external&&&/i&&/a&
理由:也是一位大神的原创博客,内容很值得学习。
6、txx's 的博客(我们都叫它虾神,他也超萌哒)
链接: &a href=&///?target=http%3A//blog.txx.im/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&txx's blog&i class=&icon-external&&&/i&&/a&
理由: 90后非常优秀的iOS开发者,看看他的大学时期的经历才发现我们过的是多么懈怠,大神之所以为大神也是有原因的。
7、Kevin的博客
链接: &a href=&///?target=http%3A//imkevin.me/%3Ffrom%3Dinf%26wvr%3D5%26loc%3Dinfblog& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Kevin Blog&i class=&icon-external&&&/i&&/a&
理由:周楷雯是一个非常厉害的90后iOS开发者,他前些年写的项目在Github上拥有2500+star (PNchat?忘了)非常恐怖。
8、念茜姐姐的blog
链接: 新博客:&b&&a href=&///?target=http%3A//nianxi.net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&nianxi.net&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 旧博客:&/b&&a href=&///?target=http%3A//blog.csdn.net/yiyaaixuexi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&念茜的博客&i class=&icon-external&&&/i&&/a&
理由: iOS圈里的女神级人物,她写的iOS安全类的文章非常值得一看。
9、孙源的blog
链接: &a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&sunnyxx的技术博客&i class=&icon-external&&&/i&&/a&
理由:90后iOS开发者,技术同样非常强,目前似乎在百度知道任职。
其他的博客我就不列举了,因为他们自己都有一个圈子大家自己去找吧很容易一找找到一堆,前提是你要有心。&/p&&p&(二)swift语言开发iOS应用&/p&&p&这里推荐两个入门学习比较好的方法
1、&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&的网站(难度指数:※)
非常浅显易懂的入门级swift教程:&a href=&///?target=http%3A///tutorials/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/tutorials/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&这个网站可以看两方面:&/p&&p&(1)、随时更新的swift tips (有一定水平在看)&/p&&p&(2)、新手主要看以下这本书&/p&&img src=&/526ee7ef7fa09a12b5a31d7c2b179120_b.jpg& data-rawwidth=&390& data-rawheight=&434& class=&content_image& width=&390&&&br&&p&2、《Swift Tutorials》 依然是raywenderlich出品,目前只有英文版。&/p&&img src=&/5cda00a594c469c1c2cae_b.png& data-rawwidth=&561& data-rawheight=&421& class=&origin_image zh-lightbox-thumb& width=&561& data-original=&/5cda00a594c469c1c2cae_r.png&&&br&&p&3、官方swift译文教程 &a href=&///?target=http%3A//numbbbbb.gitbooks.io/-the-swift-programming-language-/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《The Swift Programming Language》中文版&i class=&icon-external&&&/i&&/a&&/p&&p&4、上文提到的王巍的博客(喵神)《Swifter - 100 个 Swift 必备 tips》以及&a href=&///?target=http%3A//objc.io& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&objc.io&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&相关书籍《函数式Swift》&/p&&p&这两本书是swift里面非常难得的学习资源,好好研读可以让你少走很多弯路,必看。&/p&&img src=&/a6b449ec64e5a669b38cb9_b.png& data-rawwidth=&622& data-rawheight=&448& class=&origin_image zh-lightbox-thumb& width=&622& data-original=&/a6b449ec64e5a669b38cb9_r.png&&&p&&a href=&///?target=https%3A//store.objccn.io/products/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ObjC 中国 - 书籍&i class=&icon-external&&&/i&&/a&
以上是链接,给喵神打广告我也是心甘情愿的..因为想套路他妹妹已经很久了:-D&/p&&br&&p&
等我想到再补充。以上。&/p&
更新。这次答案的更新主要想把此答案 ------------- 原文 -------------反对以上所有答案。我反对理由如下:不管是斯坦福大学的CS193p公开课、苹果官方文档、绝大多数市场上庞杂的教学书籍都不是很适合入门同学看,想入门的话应该选用学习成本最低…
GitHub上有很多不错的iOS开源项目,个人认为不错的,有这么几个:&br&1. ReactiveCocoa:&a href=&///?target=https%3A///ReactiveCocoa/ReactiveCocoa& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ReactiveCocoa/ReactiveCocoa · GitHub&i class=&icon-external&&&/i&&/a&:&br&GitHub自家的函数式响应式编程范式的Objective-C实现,名字听着很高大上,学习曲线确实也比较陡,但是绝对会改变你对iOS编程的认知,首推之。&br&2. Mantle:&a href=&///?target=https%3A///Mantle/Mantle& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mantle/Mantle · GitHub&i class=&icon-external&&&/i&&/a&:&br&又是GitHub自家的产物,轻量级建模的首选,也可以很好的配合CoreData工作。&br&3. AFNetworking:&a href=&///?target=https%3A///AFNetworking/AFNetworking& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&AFNetworking/AFNetworking · GitHub&i class=&icon-external&&&/i&&/a&:&br&iOS7之前,苹果自带的网络库有多难用!matt大神的AFNetworking绝对可以解放你。使用苹果的NSURLRequest及iOS7的NSURLSession,清晰的架构,足够的文档,可以认为是第三方开源库的楷模了。&br&4. BlocksKit: &a href=&///?target=https%3A///pandamonia/BlocksKit& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pandamonia/BlocksKit 路 GitHub&i class=&icon-external&&&/i&&/a&&br&本人相当偏爱Functional Programming,Objective-C中的block绝对满足我的口味。但想用好block也不是很容易,如果对block有爱,就请使用这个库吧。&br&5. Nimbus:&a href=&///?target=https%3A///jverkoey/nimbus& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&jverkoey/nimbus · GitHub&i class=&icon-external&&&/i&&/a&&br&第一次关注nimbus是因为Facebook的Three20开源库。可惜Three20库已死,主要作者跳出来,写了nimbus。&br&6. pop: &a href=&///?target=https%3A///facebook/pop& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&facebook/pop · GitHub&i class=&icon-external&&&/i&&/a&&br&facebook出品的paper,动画效果太好了,赶超apple的原生app一大截。pop就是paper的动画库!&br&7. GPUImage: &a href=&///?target=https%3A///BradLarson/GPUImage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&BradLarson/GPUImage ?? GitHub&i class=&icon-external&&&/i&&/a&&br&iOS7出来时,很多好看的效果,其实都是对图像的各种处理(比如模糊效果)。图像处理看来以后也是iOS开发的必备技能之一了。而GPUImage,就是能快速处理各种图像效果的利器!&br&==========================================&br&好吧,我承认第一次知乎的回答有点惊喜,没想到这么多人点赞 ^_^&br&&br&大部分iOS的第三方库都是在苹果的基础框架之上的产物,所以基础很重要,有时间看看WWDC的历年视频,是不错的选择。&br&最近还是在深入学习ReactiveCocoa,看ReactiveCocoa的源码。对响应式编程还是有很多期待的,有时间也要重温函数式编程(比如Haskell),或者把响应式编程的公开课(&a href=&///?target=https%3A//www.coursera.org/course/reactive& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Coursera.org&i class=&icon-external&&&/i&&/a&)看完。编程范式的选择可以说是相当重要的。未来是多核+并发的时代,函数式编程无疑是更好的选择。&br&iOS的UI也很重要,但是如果理解apple的CoreAnimation及CoreGraphics框架,大部分UI基本是没问题的。当前,iOS7的各种炫酷效果,也需要对图像的处理有一定理解。说到图形学,OpenCV是一个不错的选择,而OpenGL也是另一个不错的方向(推荐的公开课:&a href=&///?target=https%3A///course/cs291& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Interactive 3D Graphics Course With Three.js & WebGL&i class=&icon-external&&&/i&&/a&)。&br&当然最重要的,还是计算机的各种基础知识了吧,知其然,知其所以然,才是正道~&br&&br&以上是个人的经验,欢迎交流讨论~
GitHub上有很多不错的iOS开源项目,个人认为不错的,有这么几个: 1. ReactiveCocoa:: GitHub自家的函数式响应式编程范式的Objective-C实现,名字听着很高大上,学习曲线确实也比较陡,但是绝对会改变你对iOS编程的…
在答题之前,我要先感谢知乎上关于iOS开发入门的所有提问和答案。没有这些提问,我不会萌发自学iOS开发的念头;没有这些优秀的答案和答主们的励志经历,我也坚持不到最后。在这里,尤其要感谢 @郝健宗 @苏菲 @王杰 @Judy Zhu @张中宝 @Wang Hailong 这几位前辈的答案,对我帮助很大。&br&&br&&p&最近我找到了一份iOS开发的正式工作,所以想把自己学习iOS开发过程中的经验和心得写出来,希望能够帮助那些努力但迷茫的初学者。&/p&&br&&p&首先介绍一下自己的背景,我大学学的是机械专业,与计算机有关的课程只有一门C语言,在接触iOS开发之前,我已经在一家机械制造行业的公司工作一年多,做的工作也与计算机毫无关系,所以我属于零基础转行。&/p&&br&&p&2014年10月,出于对机械行业的种种失望和对互联网行业的浓厚兴趣,我萌发了转行的念头,于是开始利用下班时间自学计算机知识(Java、Python、数据结构与算法)。学了大概两个月,基本的东西有了大致的了解,但是感觉要熟练掌握还是任重道远。由于时间安排上的原因,我就将重心转移到iOS开发上面。&/p&&br&&p&2015年1月,我开始开发我的第一个iOS应用,这款APP从第一行代码到苹果App Store上架用了大概两个月的时间,但总的时间跨度有接近4个月(春节期间停滞了一个多月,等待苹果审核10天)。APP上架后,我就开始投简历,并拿着我的APP去面试,很幸运地拿到了几个还不错的Offer,然后就挑了一个去上班了。&/p&&br&&p&下面就是我自学iOS开发的一些经验和心得。&/p&&br&&p&&b&一、
准备工作&/b&&/p&&p&&b&1.
Mac、iOS设备、开发者账号&/b&&/p&&p&这些是做iOS开发必须要有的,而且是一大笔钱,但不要怕花钱,因为这些都是值得的。如果能够学有所成,一两个月的工资基本就回本了。就当是自己交的一笔“培训费”吧。&/p&&br&&p&&b&2. 心态上的准备&/b&&/p&&p&如果你和我一样是零基础转行iOS,那么一定要有破釜沉舟的勇气和决心,并做好打持久战的心理准备。如果畏手畏脚、瞻前顾后,我劝你还是想好了再来,免得浪费时间和金钱。我当初收入很低,是拿了3个月的工资买的Macbook,还天天担心丢了或者弄坏;后来学习到小有所成时毅然选择了裸辞,孤身一人来到陌生的上海,经过2个月的待业状态才找到工作。这一路走来都承受着巨大的精神压力和物质压力。&/p&&br&&br&&p&&b&二、
学习路线&/b&&/p&&p&&b&1. 对编程的基本认识&/b&&/p&&p&如果你是完全的零基础,我建议先要对编程有个基本的认识。建议从C语言入手,因为C语言比较简洁易上手,并且和Objective-C很相似。&/p&&br&&p&视频推荐网易云课堂的
&a href=&///?target=http%3A///curricula/cs.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&“计算机专业体系”课程&i class=&icon-external&&&/i&&/a&,很适合入门。&/p&&p&书籍的话,推荐&a href=&///?target=http%3A///8976834.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《C
Primer Plus》&i class=&icon-external&&&/i&&/a&。&/p&&br&&p&&b&2. Objective-C语言学习&/b&&/p&&p&当对C语言有个大致的了解后,就可以开始学习Objective-C了。&/p&&br&&p&&b&推荐书籍:&/b&&/p&&p&&a href=&///?target=http%3A///.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Objective-C基础教程》&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Objective-C程序设计》&i class=&icon-external&&&/i&&/a&&/p&&p&注:这两本内容都差不多,但《Objective-C基础教程》写的更好、更经典,建议以这本为重点精读。但是这本写的比较笼统,难度稍高,所以如果遇到不懂的地方就看看《Objective-C程序设计》,这一本写的简单、详细一些。&/p&&br&&p&&b&需要掌握并熟练运用的地方:&/b&&/p&&p&1) 面向对象编程的基础知识。包括:面向对象与面向过程的区别、为什么要面向对象编程,类、对象、继承、方法、属性、接口等概念的理解与使用。&/p&&p&2) Foundation框架。主要是NSString类、NSArray类、NSDictionary类、NSNumber类、NSRange类的熟练运用。&/p&&p&3) 内存管理MRC、ARC的原理,委托delegate、协议protocol、类别category、块block的理解与使用。&/p&&br&&p&&b&3. iOS SDK/Cocoa Touch学习&/b&&/p&&p&有了Objective-C基础,就可以开始边看斯坦福公开课边做APP了(个人觉得没有OC基础直接看这个会很吃力)。视频如下:&/p&&p&&a href=&///?target=http%3A///special/opencourse/ios7.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&斯坦福大学公开课CS193P《iOS7应用开发》&i class=&icon-external&&&/i&&/a&(Objective-C语言)&/p&&p&&a href=&///?target=http%3A///special/opencourse/ios8.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&斯坦福大学公开课CS193P《iOS8开发 》&i class=&icon-external&&&/i&&/a&(Swift语言)&/p&&br&&p&&b&推荐书籍:&/b&&a href=&///?target=http%3A///.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《精通iOS开发》&i class=&icon-external&&&/i&&/a&&/p&&br&&p&&b&第一个iOS应用:&/b&&br&&/p&&p&苹果官方有个做iOS应用的教程——&a href=&///?target=https%3A///library/ios/referencelibrary/GettingStarted/RoadMapiOSCh/index.html%23//apple_ref/doc/uid/TP& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《马上着手开发iOS应用程序(Start
Developing iOS Apps Today)》&i class=&icon-external&&&/i&&/a&。强烈建议以这个Demo作为你的第一个iOS应用,因为这个教程能让你对一个iOS应用的搭建有个非常全面、细致的认识。完成了这个Demo后,就可以结合斯坦福公开课学到的东西创建属于你自己的APP了。&/p&&br&&p&&b&需要掌握的地方:&/b&&/p&&p&1) MVC设计模式。只有理解了iOS的MVC架构,才能把一个应用解剖成一个个单独的部分,这样你在开始做一个项目的时候才不会茫无头绪。&/p&&p&2)UIKit的各种控件。特别是UITableView和UICollectionView一定要掌握,因为大部分的iOS应用都是由这两种视图搭建,吃透了它们那可玩的花样就很多了,其乐无穷。&/p&&p&3) 导航控制器UINavigationController和选项卡控制器UITabBarController。同上,这两个控制器也是绝大多数iOS应用UI框架的根基,也是多个MVC协同工作的最典型例子。&/p&&p&4) 场景切换的实现——Segue。熟练使用Segue很重要,因为一个应用一般都是各个界面轮流出现的,两个界面之间怎样实现跳转、怎样将一个界面的数据传递到下个界面,这都是实际开发中会遇到的问题。&/p&&p&5) Storyboard和AutoLayout的使用。这两者是一个应用的UI界面设计不可或缺的部分。&/p&&p&6) 其它iOS高级编程。包括:数据存取CoreData/SQLite、多线程GCD、绘图CoreGraphics、动画CoreAnimation、网络编程、手势Gesture、多媒体AVFoundation等等,这些内容都可以实际用到时再深入学习。&/p&&p&7) 第三方库的使用。参考:&a href=&/question/& class=&internal&&GitHub 上都有哪些值得关注学习的 iOS 开源项目? - 编程&/a&&/p&&br&&p&&b&4. 坚持写代码、查文档、读技术博客&/b&&/p&&p&学习编程,一定要勤于动手,看再多的书、再多的视频,如果不动手敲代码都是白搭。哪怕书上和视频上的代码你一行都看不懂,也要亲手把代码敲一遍、把Demo亲自实现一遍,这很重要。编程是手敲会的,不是眼睛看会的。&/p&&br&&p&学习iOS开发的过程中,有遇到不懂是正常的,别害怕不懂,Cocoa的内容细节本来就多,每年的WWDC还会发布一些新技术。所以遇到不懂的知识一定要学会查苹果官方API文档:&a href=&///?target=https%3A///devcenter/ios& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS Dev Center&i class=&icon-external&&&/i&&/a&&/p&&br&&p&做APP时,如果一个地方不会实现,或者遇到解决不了的问题,一定要学会使用Google搜索。一般来说,初学iOS遇到的问题,&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Stack Overflow&i class=&icon-external&&&/i&&/a&上都有类似的提问,基本一搜一个准。&/p&&br&&p&此外,CSDN等一些技术博客上的文章也很有参考价值。推荐一些优秀的iOS技术博客——中文 iOS/Mac 开发博客列表:&a href=&///?target=https%3A///tangqiaoboy/iOSBlogCN& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tangqiaoboy/iOSBlogCN · GitHub&i class=&icon-external&&&/i&&/a&&/p&&br&&br&&p&&b&三、写在最后的话&/b&&/p&&p&如果你能按照以上所述做出一个APP上架并找到工作,那也基本算是入门了。但这并不是终点,这只是一个新的起点。iOS开发,乃至整个计算机/互联网行业,后面的路还很漫长。苹果的整个Cocoa框架,可谓是博大精深,里面可以深挖的东西太多了;而且一个程序、一段代码可以进行的优化是没有止境的。作为开发者,只会一门语言是不够的,网络编程、数据库、算法、设计、交互等等东西都是需要掌握的,而语言只是实现这些的工具,语言其实是最简单的。&/p&&br&&p&此外,如果你和我一样是非科班出身,还需要把计算机基础课程补回来,即:数据结构、算法、操作系统、数据库、计算机网络、编译原理等。因为这些知识是你的“内功”,这些基础直接决定了你在这个领域的天花板所在的位置。&/p&&br&&p&当然,基础差一点也问题不大,最重要的是你对计算机、互联网的热爱和热情。你需要有很强的自学能力,不断地去学习新知识,才不会被这个日新月异的行业淘汰;你需要保持一颗好奇心,不断地尝试和接受新事物,不断地创新,守旧的人在这个行业无法生存。在我找工作的过程中,那些知名的大公司都是直接在简历关就将我刷掉了,而那些给我Offer的公司,无一例外都表示,之所以选择我是因为欣赏的我的热情、看重我的自学能力。&/p&&br&&p&所以,如果你和我一样对iOS开发充满热情,敢于接受挑战,那么就从现在开始努力吧,我在前方的路上等你! &/p&&br&&br&&p&——————————————————————————&/p&&p&&b&iOS开发QQ交流群:,加群请注明知乎。&/b&&/p&&p&——————————————————————————&/p&
在答题之前,我要先感谢知乎上关于iOS开发入门的所有提问和答案。没有这些提问,我不会萌发自学iOS开发的念头;没有这些优秀的答案和答主们的励志经历,我也坚持不到最后。在这里,尤其要感谢 @郝健宗 @苏菲 @王杰 @Judy Zhu @张中宝 @Wang Hailong 这几位…
我当时刚学iOS开发的时候一样的感觉 总想知道原理 内部怎么回事 感觉在像在雾里&br&但是iOS开发就是这样 他是封闭的 本身就是在雾里...&br&&br&关于iOS开发的学习 打个比方就像把汽车分解&ul&&li&最底层的原料有塑料 钢铁&br&&/li&&li&再用这些底层的东西造出来发动机 座椅&br&&/li&&li&最后再加上写螺丝 胶水等 把汽车就拼起来了&br&&/li&&/ul&iOS基本都是英文的资料 也由于封闭 文档写的相当好&br&在遇到新框架的时候 &ul&&li&弄明白框架的功能&/li&&li&去文档里搜搜 框架的 Programming Guide 很有用&br&&/li&&li&要弄明白框架类的继承结构&/li&&/ul&写iOS的程序不一定都是用OBJC 很多框架是用C写的&br&学习iOS开发基础可以按照下面两个方面学&ol&&li&基础 (原料 钢铁 塑料)&/li&&/ol&&ul&&li&OBJ-C --- 语法弄明白 @interface @property 这些东西总要知道是干嘛的 怎么用&br&&/li&&li&基础库 --- NSString NSArray NSDictionary等 这些东西在所有的框架里都会出现&/li&&ul&&li&iOS大部分类都是继承自NSObject (我还没见过不是继承自NSObject的..)&/li&&li&还有一些 像NSCopying的接口(经@李禹龙提醒 应该叫协议) 不是特别用到开始不用了解&/li&&li&NSObject 创建对象的时候用 + (id)alloc 方法 创建后需要init方法初始化 这个init指的是所有前面是init的方法比如UIView的初始化方法是 - (id)initWithFrame:(CGRect)aRect 在Objc里有很多这样关于函数命名的约定 类似于在python中的函数__xxx&/li&&li&NSString 字符串 NSArray 数组 NSDictionary 字典 这些都需要弄很清楚 其他的类都是一个套路&/li&&li&NSMutableArray 这样带Mutable的类代表可变的 继承自相应的不可变类 比如NSMutableArray继承自NSArray 他们都添加了可以改变对象内容的方法比如&/li&&ul&&li&- (void)addObject:(id)anObject 添加对象&/li&&li&- (void)removeObject:(id)anObject 删除对象&/li&&/ul&&li&上面只是一个大概的总结 还有很多东西需要学 iOS5的SDK已经支持ARC 可以自动进行release 但是对iOS4的支持还有一个小问题 现在要开发应用 可能还需要按照之前的MRC的方式alloc release retain autorelease 之类的内存管理方法 不过如果你现在开始学 到编出像样的APP iOS5可能已经普及了 可以直接用ARC (&u&另 之前对ARC的了解很粗浅 现在开发程序完全可以直接ARC iOS4不支持的weak是有办法替代的 用unsafe_unretained 如果同时支持iOS5和iOS4 用宏判断下就可以 当然也可以直接用assign&/u&)&/li&&li&还有一点开始学习的时候肯定很疑惑 内存管理是基于函数名称的 比如带alloc copy的函数 用了之后返回的对象一定要release 这个不用疑惑 照做就行了&/li&&/ul&&/ul&&ol&&/ol&&li&文档: &a href=&///?target=http%3A///library/mac/%23documentation/Cocoa/Conceptual/CocoaFundamentals/Introduction/Introduction.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/lib&/span&&span class=&invisible&&rary/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/Introduction/Introduction.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&/li&&ol&&li&高级库(发动机)&br&&/li&&/ol&&ul&&li&UIKit --- UI库 OBJC&/li&&ul&&li&UIResponder 父类是NSObject
UIKit里最底层的库 可以响应一些触摸事件 设置焦点等功能&/li&&li&UIView 父类是UIResponder 所有View的父类 方法太多了 大部分很有用 这个不赘述了 中文的资料也很多了&/li&&ul&&li&比如: &a href=&///?target=http%3A///likwo/archive//2084192.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/likwo/archi&/span&&span class=&invisible&&ve//2084192.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&li&文档: &a href=&///?target=http%3A///library/ios/%23documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/Introduction/Introduction.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/lib&/span&&span class=&invisible&&rary/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/Introduction/Introduction.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&/ul&&li&关于UIView的子类 有很多 UIButton UITableView 这个都需要各个击破 看看文档从名字上就很容易理解是做什么的&/li&&li&UIViewController
是管理View 和 Model的类 (&u&@张开 说UIViewController是用来管理view的,管理model 的类自己写,当然,model也可以用UIViewController来管理,不过恐怕成为不好的代码。 的确是这样的 Model的改变最好通过Notification来传播 之前吃过这样的亏 最好不要用delegate模式&/u&)&/li&&ul&&li&UIViewController 管理所有设备发生的事件 比如屏幕旋转 屏幕关闭 或者一些其他的 程序的控制逻辑也应该写在这里&br&&/li&&li&他的初始化函数是- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle 后面那个NibName 是Interface Builder 里设计的界面&/li&&ul&&li&现在IB已经集成到XCode里了 打开.xib的文件打开的就是IB&/li&&li&IB和代码交互用的是IBAction IBOutlet 这些标记 这些标记追踪到他们的定义其实对编译器来说什么都不表示 只能IB识别&/li&&li&IB也没那么高深 XIB文件解开之后就是一堆代码&/li&&li&之前面过一家小公司 看我当时写的程序里面用到了IB 一脸不屑 说他们都是用代码控制view 意思他们玩的都是高科技 IB都是垃圾 很多人也纠结到底用不用IB 的确 很多时候IB灵活度不行 但是不需要灵活度的时候还不用IB 那不是装X吗 要是没人用苹果还开发IB干嘛 早去掉了 IB在很多时候节省很多工作量&/li&&/ul&&/ul&&li&UINavigationController 再说说NavigationController &br&&/li&&ul&&li&刚接触开发的时候 不明白 View和View之间怎么切换的 最重要的就是UINavigationController 他是一层一层推进view的 打开iPhone里的联系人 每点一个联系人屏幕就会像右推到下一个界面 这就是UINavigationController在做的事&/li&&li&UINavigationController 维护一个堆栈 &br&&/li&&li&- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 是像堆栈里压一个UIViewController&/li&&li&- (UIViewController *)popViewControllerAnimated:(BOOL)animated 是从堆栈里弹出来一个UIViewController&/li&&li&就算你的程序不是像联系人那样 向右推进 也可以用UINavigationController 管理你的ViewController的层次 可以自己写View切换的动画 关掉他默认的动画&/li&&li&文档: &a href=&///?target=http%3A///library/ios/%23featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/lib&/span&&span class=&invisible&&rary/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&/li&&/ul&&li&UIWindow 还有个蛋疼的UIWindow 都快忘了他了 因为iOS是从Mac os X过来的 很多东西直接拿来用 这个UIWindow就是 在iOS里 每个App独占屏幕 所以同时存在的只有一个UIWindow 除了在程序加载的时候把我的view 加载到他上 目前我还没用到过其他的&/li&&/ul&&ul&&li&苹果一直很推崇MVC的程序结构 视图 模型 控制器 简单说就是 视图负责显示内容 模型负责所有数据的保存结构或者一些其他数据操作 控制器是用来协调 视图和模型 举车的发动机系统的例子 视图是仪表盘 模型是发动机 控制器是控制芯片&/li&&/ul&&li&Core Data --- 管理数据 OBJC&br&&/li&&ul&&li&刚学的时候觉得 CD很高深 其实他是最容易用的库之一 他麻烦之处在于多线程问题 还有胶水代码的问题&/li&&li&建立一个 基于Core Data的工程 你会看到他自动创建3个类的对象&/li&&ul&&li&NSManagedObjectModel&/li&&ul&&li&管理数据的存储结构文件 扩展名是 xcdatamodeld &/li&&/ul&&li&NSPersistentStoreCoordinator&/li&&ul&&li&用来管理底层数据的存储 用官方的话说
&blockquote&Core Data is not a relational database or a relational database management system (RDBMS).&/blockquote&&/li&&li&所以你可以用很多方法存储数据 比如最长用的sqlite 当然如果另类也可以用plist文件 或者其他&/li&&/ul&&li&NSManagedObjectContext &/li&&ul&&li&NSManagedObjectContext 把上面两个对象连在一起 把他们变成一个整体&/li&&li&所有的CD操作都是通过这个类的 这个需要仔细看文档了&/li&&/ul&&li&举个不恰当的例子 就像三个人收拾衣服 一个人负责衣服的存放位置(NSManagedObjectModel) 一个人负责把衣服分类 冬天穿 夏天穿等(NSPersistentStoreCoordinator) 一个人负责协调他们的工作 并且如果有新增加的衣服或者要移除之前的衣服 通知他俩(NSManagedObjectContext)&/li&&/ul&&li&NSManagedObject 这个类是具体的数据对象 用上面的例子说就是衣服&br&&/li&&ul&&li&一般都是继承这个对象 XCode 可以帮你做 具体搜搜 这种文章很多&/li&&/ul&&li&NSFetchRequest&/li&&ul&&li&用来执行CD请求的 相当与select语句外壳&/li&&/ul&&li&NSEntityDescription&/li&&ul&&li&用来描述实体的 对应sql里的table&/li&&/ul&&li&NSPredicate&/li&&ul&&li&谓语 类似select语句中的条件&/li&&/ul&&li&上面这三个类就可以用来请求数据了 具体看教程吧&/li&&li&中文介绍:&a href=&///?target=http%3A//c.gzl.name/archives/tag/core-data& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&c.gzl.name/archives/tag&/span&&span class=&invisible&&/core-data&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& (访问需要点技术...)&/li&&li&文档: &a href=&///?target=http%3A///library/mac/%23documentation/cocoa/conceptual/coredata/cdprogrammingguide.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/lib&/span&&span class=&invisible&&rary/mac/#documentation/cocoa/conceptual/coredata/cdprogrammingguide.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&/ul&&/ul&掌握上面的内容 差不多就能写个APP了 最好的学习方法就是边写边学 自己构想一个小的APP 在做的时候遇到问题 去找找资料 我觉得这样学习比较快 也比较扎实&br&下面这些库都是有专门功能的库&ul&&li&Core Animation --- 制作动画 很强大 很喜欢的框架 可以用少量的代码写出漂亮的动画 C&/li&&li&Quartz 2D --- 强大的2D绘图库 C&/li&&li&OpenGL --- 不用介绍了 超级强大的3D库 C&/li&&li&Core Image --- 听说 iOS5开始支持Core Image 了 还没去看 Mac 上的CI是很强大的&/li&&li&CFNetwork --- 从来没用过 我一般都会用ASIHttpRequset 封装好的高层网络库 OBJC实现的 CFNetwork 好像是C实现&/li&&li&Core Location --- 获取位置的库 东西很少 很简单 OBJC&/li&&li&AVFoundation --- 播放视频相关的库 最近正在学习 &/li&&/ul&这些算是学iOS开发的一些方法 当时要是有人告诉我这些 估计少走不少弯路&br&还有提醒各位初学者 刚开始学的时候 会有几个月的低谷期 很容易放弃 如果挺过最开始的几个月 后来就越学越容易了&br&PS: 第一次写这么多东西 可能有些地方层次不够清晰 或者 词语用的不正确 欢迎拍砖
我当时刚学iOS开发的时候一样的感觉 总想知道原理 内部怎么回事 感觉在像在雾里 但是iOS开发就是这样 他是封闭的 本身就是在雾里... 关于iOS开发的学习 打个比方就像把汽车分解最底层的原料有塑料 钢铁 再用这些底层的东西造出来发动机 座椅 最后再加上写螺…
这么说吧,写objc的时候我可以边写一边感慨&br&“这里要是CPP就简单了……”&br&“这里要是CPP就不用重复了……”&br&“这里要是CPP就可以直接静态化不用反复加载了……”&br&……&br&真写CPP的时候根本没时间去比较,都是一边写一边哭着问编译器“我他妈到底错哪儿了你说清楚啊!”
这么说吧,写objc的时候我可以边写一边感慨 “这里要是CPP就简单了……” “这里要是CPP就不用重复了……” “这里要是CPP就可以直接静态化不用反复加载了……” …… 真写CPP的时候根本没时间去比较,都是一边写一边哭着问编译器“我他妈到底错哪儿了你说…
我从iOS零基础到找到一份还不错的iOS开发工作用了1个来月,并上线一个App,我比较喜欢在实战中学习,说下我的经历,给你做个参考。&br&&br&&br&&br&开始学习iOS之前我已经工作了4年,感觉没有太多时间像在校生一样去做系统性的学习,我的目标就是要转行(之前是做数据库架构),以最快的时间进入这个领域。&br&&br& 1 要有mac和iPhone,不要用windows开发&br&2 申请苹果个人开发,就是99美金的那个&br&3 从网上下了Stanford的iOS课程,看了开头的6,7课,边看边把里面讲的我自己敲代码敲出来&br&4 在看课程的时候,不停地想可以做什么简单又好玩的应用&br&5 停止纯粹学习,花2个星期完成我自己想的那个简单应用,期间只学习做这个应用需要的(这个期间学习以搜索为主,主要是&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& &a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 和 Apple官方文档)&br&6 再用一个星期完成UI图片(我是用Pixelmator自己绘的)&br&7 提交应用审核(第一次被拒,但和Apple的什么人员沟通后,发现是个误会)&br&8 拿着应用去面试&br&&br&9 进入公司边干边学&br&&br&&br&1~8大约花了40天左右,从iOS零基础到第一个App上线并找到一份iOS的开发工作的全过程。
我从iOS零基础到找到一份还不错的iOS开发工作用了1个来月,并上线一个App,我比较喜欢在实战中学习,说下我的经历,给你做个参考。 开始学习iOS之前我已经工作了4年,感觉没有太多时间像在校生一样去做系统性的学习,我的目标就是要转行(之前是做数据库架…
真正从「长远角度」看,学习 Objective-C 还是 Swift 语言其实&b&很不重要&/b&。&br&&br&Swift 刚发布的时候有人说「这下所有人都回到零起点了」,实际上是外行的一个常见的误解。Objective-C / Swift 和 iOS 开发是两个不同的概念,这点希望你清楚。前者仅仅是一门编程语言,而后者则包括了编程思想、Cocoa 框架的使用,甚至交互设计规范、界面设计规范等 iOS 开发所需的一整套东西,并且绝大部分是&b&和语言无关的&/b&。从学习的角度看,大部分时间你将花在学习 &b&后者&/b&上,而具体语言和语法只占很小的比例。Objective-C 和 Swift 虽然语法上差异很大,但是背后的思想以及所依托的类库都是相同的。关于 iOS 应用开发你能想到的绝大多数问题,例如:&br&&ul&&li&一个应用的代码是从哪里开始执行的?&br&&/li&&li&如何建立一个按钮,并实现用户点击这个按钮之后调用一个函数?&/li&&li&如何修改一个标签的文字?&br&&/li&&li&如何控制系统发出声音或者播放视频?&br&&/li&&li&如何检测设备的朝向?&br&&/li&&/ul&它们的答案都取决于 Cocoa 框架如何使用,而非具体采用的语言是什么——你关注的应该是背后的「我该做什么,为什么要这么做」,而不是简单的「具体怎么去写」——不同语言仅仅是一个写法不同而已,手册和网络上都可以查到,用多了自然掌握。&br&&br&因此,对于一个已经掌握了 Objective-C 和 iOS 开发的人,迁移到 Swift 是几天就可以搞定的;而对于一个掌握了 Swift 和 iOS 开发的人,迁移到 Objective-C 也不会很困难。&br&&br&至于选择哪个语言,我想说 Swift 代替 Objective-C 肯定是有原因的,必须承认 Objective-C 的很多语法的确很怪很繁杂(Objective-C 的啰嗦是出了名的),可能对编程语言的初学者不太友好,Swift 接受起来会稍微容易一些。但另一个事实是,目前 Swift 的文档、教程和代码还比较少,并且大部分都是关于语法的。虽然有一两个官方文档是关于如何从 Objective-C 切换到 Swift 的,也有一些 Swift 的示例代码,但和 iOS 开发这个庞大的体系比起来,覆盖面仍然很窄。这对于已经掌握 Objective-C 的开发者不是问题,但是对于什么都不会的初学者,看过 Swift 的文档之后能写一个类似 C 的控制台应用程序出来,但是很难写一个你自己想要的完整可用的 iOS App 出来。因此,基于你的情况,我还是倾向于推荐从 Objective-C 开始学起。&br&&br&关于学习流程,建议以实践为主,看书为辅。可以先找本书了解下 Objective-C 的基本语法(我当时看的是这本:&a href=&///?target=http%3A///subject/3864073/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Objective-C基础教程 (豆瓣)&i class=&icon-external&&&/i&&/a&),然后看 Apple 的官方教程来入门:&a href=&///?target=https%3A///library/ios/referencelibrary/GettingStarted/RoadMapiOSCh/chapters/Introduction.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&马上着手开发 iOS 应用程序:介绍&i class=&icon-external&&&/i&&/a&。等你把这个教程的内容基本上理解了,就开始尝试自己开发一个小程序,从最简单的视图开始,然后开始使用 table view,可以尝试模拟一下 iOS 中「设置」应用的界面。最重要的参考资料其实是 Apple 的官方文档(&a href=&///?target=https%3A///devcenter/ios/index.action& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS Dev Center&i class=&icon-external&&&/i&&/a&)。这里特别要表扬一下 Apple 的文档,写的还是很不错的,非常清楚详细。个人感觉看这些文档就足够了;如果你需要,可以再单独买一本书,比如我买了这本:&a href=&///?target=http%3A///url%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D4%26cad%3Drja%26uact%3D8%26ved%3D0CEQQFjAD%26url%3Dhttp%253A%252F%%252FBeginning-iOS-Development-Exploring-SDK%252Fdp%252FX%26ei%3D7-yuU8-jNoy7oQT0qYHYBw%26usg%3DAFQjCNF47rhnU_m5wBkRVAh35rlXKcD-Hw%26sig2%3DfIf1V16yz6X-_Z1qTT_4Aw& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Beginning iOS 7 Development: Exploring the iOS SDK: Jack ...&i class=&icon-external&&&/i&&/a&。注意,各个 iOS 版本的 API 略有不同,目前来说最好选择对应 iOS 7 的教程。等你把 table view 完全用会了,剩下的就不需要我教了。&br&&br&在这期间,你会遇到无数的问题和错误,你想做的很多事情书上是没有的,这时候要求助于网络。果断抛弃百度吧,直接用英文 Google 搜索,注意 Stack Overflow 里面的问题和回答。Stack Overflow 是一个程序员的问答社区,水平非常高(如果你有一个账号并且积分比较高,在很多国外公司的面试中甚至都是有加分的),基本上这一阶段你能遇到的所有问题在这里都能找到不错的答案。
真正从「长远角度」看,学习 Objective-C 还是 Swift 语言其实很不重要。 Swift 刚发布的时候有人说「这下所有人都回到零起点了」,实际上是外行的一个常见的误解。Objective-C / Swift 和 iOS 开发是两个不同的概念,这点希望你清楚。前者仅仅是一门编程语…
更新:答案有一些新的内容整理成了一篇文章,感兴趣可以移步这里 &br&&br&&a href=&///?target=http%3A///posts/iOS_learn_path/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS开发路线简述&i class=&icon-external&&&/i&&/a&&br&&br&-------------割-----------------------------------&br&首先我讲的是iOS原生应用通过OC语言的开发,&br&环境:MacOSX+Xcode,MacOSX没钱只能装黑苹果,是可以的,有钱最好买mac。&br&&br&语言:Objective C,通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。关于基本概念可以参考,&a href=&///?target=http%3A//blog.csdn.net/totogo2010/article/details/7632384& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&十分钟让你明白Objective-C的语法(和Java、C++的对比)&i class=&icon-external&&&/i&&/a& 。&br&&br&框架:php的框架我不是很熟,首先iOS开发采用的是MVC模式,就是把项目分为Model、View和Controller三层进行管理。然后iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。这四层每层都有一系列相对应功能框架,比如负责app界面的UIKit就在Cocoa Touch layer。&br&&br&API:iOS的四个层次就是苹果公司iOS开发者提供的api。&br&库:第三方库的话,可以查看github上object -c的仓库排名,&a href=&///?target=https%3A///search%3Fl%3DObjective-C%26q%3Dlocation%253Achina%26ref%3Dsimplesearch%26type%3DRepositories%26utf8%3D%25E2%259C%2593& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Search · location:china · GitHub&i class=&icon-external&&&/i&&/a& 。&br&&br&工具:&br&第一是多人协作的问题,你可以用svn或者git,git是比较流行的,但是大多数的公司还在用svn;&br&第二,iOS的数据持久化有很多方案,最高效的就是sqlite,在mac上有很多sqlite的可视化管理工具,我用的是sqlitemanager。&br&第三,关于查看模拟器或者真机的沙盒内容,模拟器可以使用SimPholders,真机可以用ifunbox。&br&第四,屏幕取色工具,sip。&br&第五,另外xcode也可以安装很多辅助工具,例如,格式化xcode代码的ClangFormat,第三方库管理工具CocoaPods,压力测试工具uiautomonkey。&br&第六,移动开发有一些常用的平台的,比提供社会化分享、统计分析等的友盟,sharesdk;内测平台fir.im,蒲公英;云测平台testin;广告平台google的admob&br&&br&&br&另外讲一些常识:&br&首先是账号相关问题,如果要真机调试,用黑苹果是没办法实现的。真机调试需要证书,如果你没有99美元买账号,可以在淘宝上买调试证书,如果要上传appstore则需要买99美元的账号。&br&其次关于OC语言,OC是一个编译型的语言,通过gcc编译器把object-c代码编译成机器指令。OC具有一些动态特性,包括动态类型,动态绑定,动态加载,这让OC称为一门特殊的语言。&br&然后一般写iOS的UI有三种方式。xib,Storyboard以及代码创建。我觉得代码是效率最高也最厉害的,具体对比可以看喵神的博客&a href=&///?target=http%3A///2013/12/code-vs-xib-vs-storyboard/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码手写,xib和StoryBoard间的博弈&i class=&icon-external&&&/i&&/a&;关于iPad和iPhone如果要适配的话是不大好的,最好设计两种UI。&br&&br&&br&关于看书,对于某一个东西入门的话,其实不适合看书,或者你想看随便挑一本入门的书就跟着看就好了。&br&但是不过后期要精通我觉得几乎应该把所有iOS好的书看完,我在知乎曾问过有什么iOS进阶的书,这个回答非常中肯,&a href=&/question//answer/& class=&internal&&有什么iOS进阶的书推荐吗?&/a&&br&&br&还有关于一些学习的网站,&br&&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&code4app&i class=&icon-external&&&/i&&/a&,&a href=&///?target=http%3A//www.oschina.net/ios/home& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS开发社区 – 开源中国社区&i class=&icon-external&&&/i&&/a&,&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&cocoachina&i class=&icon-external&&&/i&&/a&是国内常用的三大代码库网站,国外有,技术问答&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&stackoverflow&i class=&icon-external&&&/i&&/a&,代码库&a href=&///?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&cocoacontrols&i class=&icon-external&&&/i&&/a&,版本控制的网站&a href=&///?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&github&i class=&icon-external&&&/i&&/a&,并且欢迎关注我的github,&a href=&///?target=https%3A///coderyi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&coderyi
· GitHub&i class=&icon-external&&&/i&&/a&&br&&br&这里有一个别人整理的iOS学习资料,&br&&a href=&///?target=https%3A///library/prerelease/ios/referencelibrary/GettingStarted/RoadMapiOSCh/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&马上着手开发 iOS 应用程序 &i class=&icon-external&&&/i&&/a&(apple官方整理),&br&&a href=&///?target=https%3A///Aufree/trip-to-iOS& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Aufree/trip-to-iOS · GitHub&i class=&icon-external&&&/i&&/a&(资料最全)
,&br&&a href=&///?target=http%3A///resource& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS资源 - &i class=&icon-external&&&/i&&/a& ,&br&&a href=&///?target=https%3A///qinjx/30min_guides/blob/master/ios.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS开发60分钟入门&i class=&icon-external&&&/i&&/a& ,&br&&a href=&///?target=http%3A///special/fornew.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS开发从新手到上架&i class=&icon-external&&&/i&&/a&,&br&&a href=&///?target=http%3A///archives/397& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS开发路线简述&i class=&icon-external&&&/i&&/a& 。&br&&br&最后附赠一张传智播客上的iOS学习路线图 ,原图链接(&a href=&///?target=http%3A///mjios/archive//2933200.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iOS完整学习路线图&i class=&icon-external&&&/i&&/a&),这一些东西只是iOS开发的冰山一角,哪一东西要做好都要学很多东西,学好最重要的就是你对他的热情,路漫漫其修远兮,祝你早日学成。&br&&img src=&/b9c90cd8f7ab395ac8b1c_b.jpg& data-rawwidth=&871& data-rawheight=&1305& class=&origin_image zh-lightbox-thumb& width=&871& data-original=&/b9c90cd8f7ab395ac8b1c_r.jpg&&
更新:答案有一些新的内容整理成了一篇文章,感兴趣可以移步这里
-------------割----------------------------------- 首先我讲的是iOS原生应用通过OC语言的开发, 环境:MacOSX+Xcode,MacOSX没钱只能装黑苹果,是可以的,有钱最好买mac…
我就是零基础学习swift语言,之前是写javascript,学了有3-4天了吧,说下我的感受,和这个东西与前端开发的关系。&br&&br&开始之前,写下这个答案我的主要观点: &b&可以跳过oc直接学习swift,一点问题没有的,只不过后期我觉得还是要学下oc,因为毕竟很多时候你用的都是oc写好的类,遇到bug了一点不会,太捉急了吧,还有不少教程都是以oc为例子的,看着也捉急&/b&~&br&&br&看我下我拿swift写的demo……毫无违和感好么。。~&br&&br&&div class=&highlight&&&pre&&code class=&language-text&&/bmiddle/62bfb217jw1ehg4havla3g208w0gctki.gif
/bmiddle/62bfb217jw1ehh5muu356g208y0dwqda.gif
/bmiddle/62bfb217jw1ehhatl90zfg208s0dynpe.gif 【代码地址下图】
/bmiddle/62bfb217jw1ehhatvusprj20or0kz78o.jpg
知乎的图片不支持gif啊- - 只有贴地址了
&/code&&/pre&&/div&&br&&br&首先看swift的基础语法,了解了最基本的控制,变量,数据体,类与结构体,继承之后,开始可以写一些简单的命令行工具,说白了就是终端工具,打印log之类的没一点问题。&br&&br&可惜,我们学习这个东西不是为了开发command line程序的,我用shell或者nodejs也挺好比这个上手还快。&br&&br&所以紧接着第二天开始直接跳过command line程序编写ios app,也就是iphone程序。&br&&br&然后我就觉得我他妈的掉进了一个深坑。&br&&br&搜了一下 现成得swift教程做app的中文几乎没有,国外有几篇讲的是开发一个todolist的教程,写的和官方的那个oc的todolist教程差不多,但是从我开始做到最后结束跑到模拟器里,我他妈也没写上超过20行得swift。。。基本都是IB实现的界面,事件,换场以及控件的创建。&br&&br&我琢磨那他妈的我用oc也是一样的,算了,ios开发莫非就只是拖拖控件?了解一下mvc的概念就ok?&br&&br&于是我去github上开始搜索开源的swift项目,比如2048,还有那个flappy,还有一个天气app的软件。&br&&br&看了几行源码我就特么的放弃了。倒不是看不懂,我发现都是基于cocoa的,什么cocoa呢?我又去搜了一下,说了我是ios开发小白一点经验没有,然后我发现又是他妈的一个深坑啊。。cocoa的api都是oc编写的啊,swift是可以直接调用没的问题,可是cocoa的功能实在太多了啊。。&br&&br&最他妈主要的是cocoa的帮助手册例子代码,api都他妈的是oc的api啊……我完全不会oc,我说了我是零基础,然后我在思考,我是否需要去学习下oc回来才能看懂那些api到底是怎么调用?那么多开源包都是些什么东西?&br&&br&卧槽,那我学会了oc,我还学swift干啥呢?&br&&br&不是说不用学oc了么……我特么的学swift就是为了不想了解oc啊。结果呢。&br&&br&你不会oc也就是写写command line程序啊……我去你大爷的啊- -。&br&&br&还有,xcode功能如此强大,我感觉如果自己写着玩,根本啥也不用学好么,鼠标拽拽一个app就出来了啊。。&br&&br&而专家级呢?我觉得大部分得oc库,类都还都是oc的,你用swift可以调用,但是如果有bug呢?你想看内部实现呢?商业项目中这种开源坑遇到太多了,难道你就只用swift搞定么?&br&&br&不太可能,也根本不可能,大家的代码都是oc的,底层是oc的,表现层也是,那么你swift到底是干什么用的呢?&br&&br&===================================================&br&&br&这是我学习了不到一周对swift和ios开发的理解,不学oc,我开发的时候就经常会陷入【这他妈是啥,这他妈又是啥的一个一个深坑】&br&&br&好了,就说这么多,最后扣下我第一句话。&br&&br&&b&swift开发和前端开发的关系就是java和javascript关系,雷锋和雷峰塔的关系。&/b&&br&&br&PS,我发现其实文档中的实例代码是有swift的例子的,不知道是不是自动更新的,记得上周还木有。刚才发现有了,也可能之前我没仔细看~木哈哈。比如下面这段:&br&&br&&img src=&/f8d2decb88c9931390fd_b.jpg& data-rawwidth=&625& data-rawheight=&248& class=&origin_image zh-lightbox-thumb& width=&625& data-original=&/f8d2decb88c9931390fd_r.jpg&&给苹果的文档 赞一个。。但是我依然不他妈的知道那个UIControlState是特么啥,我觉得,会oc开发的同学上手一定比0基础的要快很多……!
我就是零基础学习swift语言,之前是写javascript,学了有3-4天了吧,说下我的感受,和这个东西与前端开发的关系。 开始之前,写下这个答案我的主要观点: 可以跳过oc直接学习swift,一点问题没有的,只不过后期我觉得还是要学下oc,因为毕竟很多时候你用的…
谢&a href=&/people/davidchang& class=&internal&&David Chang&/a&邀请&br&&br&看了上面的答案,值得关注学习的开源项目其实还真没有几个。&br&&br&首先,学习这类开源项目的主要目的是为了实现产品汪需求,如果不是这个目的,完全可以看&a href=&///?target=https%3A///explore& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Explore GitHub&i class=&icon-external&&&/i&&/a&,当前最火的开源项目都在这里,当然你需要过滤一下语言。&br&&br&好了,介绍几个希望能帮助到你。&br&&br&普通的iOS开发项目基本就是网络、本地存储+一些狂拽炫酷的动画,想想看是不是?&br&&br&-------------------- 割 ---------------------&br&&br&&b&网络&/b&&br&&ul&&li&&a href=&///?target=https%3A///AFNetworking/AFNetworking& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&AFNetworking&i class=&icon-external&&&/i&&/a&&/li&&li&?&a href=&///?target=https%3A///bolee/JSONKit& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JSONKit&i class=&icon-external&&&/i&&/a&(推荐使用YYModel)&/li&&li&&a href=&///?target=https%3A///bolee/Reachability& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Reachability&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=https%3A///samvermette/SVPullToRefresh& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVPullToRefresh&i class=&icon-external&&&/i&&/a&&/li&&/ul&(替代 &a href=&///?target=https%3A///enormego/EGOTableViewPullRefresh& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&EGOTableViewPullRefresh&i class=&icon-external&&&/i&&/a&和 &a href=&///?target=https%3A///sishen/LoadMoreTableFooterView& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LoadMoreTableFooterView&i class=&icon-external&&&/i&&/a&)&br&&br&网络请求首选AFNetworking,无数个项目证明,只选对的。&br&&br&Reachability也要用起来,时不时检查一下网络状况,然后配合MBProgressHUD告知用户「亲,你丫现在没网啦,别特么戳了。&b&」&/b&&br&&br&使用&a href=&///?target=https%3A///samvermette/SVPullToRefresh& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVPullToRefresh&i class=&icon-external&&&/i&&/a&处理刷新。&br&&br&-------------------- 割 ---------------------&br&&br&数据解析(JSON)&br&&ul&&li&&a href=&///?target=https%3A///ibireme/YYModel& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&YYModel&i class=&icon-external&&&/i&&/a& (推荐)&br&&/li&&li&&a href=&///?target=https%3A///Mantle/Mantle& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mantle&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=https%3A///CoderMJLee/MJExtension& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MJExtension&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=https%3A///jsonmodel/jsonmodel& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&jsonmodel&i class=&icon-external&&&/i&&/a&&/li&&/ul&推荐使用YYModel,解析效率可以查看下图(iPhone6上基于解析Github用户10000测试)&br&&img src=&/3db1ea1ecbb_b.png& data-rawwidth=&1316& data-rawheight=&808& class=&origin_image zh-lightbox-thumb& width=&1316& data-original=&/3db1ea1ecbb_r.png&&&br&可以看到YYModel几乎接近手动解析JSON数据,同时还提供了很多便利的方法。(例如接口返回一个名字叫做id的字段,id。。。厉害了word哥)&br&&br&&b&本地存储&/b&&br&&ul&&li&&a href=&///?target=https%3A///ccgus/fmdb& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&FMDB&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=https%3A///library/mac/documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Core Data&i class=&icon-external&&&/i&&/a&&/li&&li&?&a href=&///?target=https%3A///rs/SDWebImage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SDWebImage&i class=&icon-external&&&/i&&/a& (推荐 &a href=&///?target=https%3A///northwind/FlyImage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&FlyImage&i class=&icon-external&&&/i&&/a& )&/li&&li&?&a href=&///?target=https%3A///tumblr/TMCache& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TMCache&i class=&icon-external&&&/i&&/a&(由于TMCache已经不在维护,建议大家使用PINCache,感谢 &a data-hash=&82d08aab79f28302d9bca4c0eb60426b& href=&///people/82d08aab79f28302d9bca4c0eb60426b& class=&member_mention& data-editable=&true& data-title=&@曾源IvanIsStrong& data-hovercard=&p$b$82d08aab79f28302d9bca4c0eb60426b&&@曾源IvanIsStrong&/a& 指正,参阅&a href=&///?target=https%3A///post//tmcache-is-no-longer-being-actively-maintained& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tumblr官方文章&i class=&icon-external&&&/i&&/a&) &/li&&li&&a href=&///?target=https%3A///pinterest/PINCache& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PINCache&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=https%3A///northwind/FlyImage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&FlyImage&i class=&icon-external&&&/i&&/a& (集&a href=&///?target=https%3A///rs/SDWebImage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SDWebImage&i class=&icon-external&&&/i&&/a&, &a href=&///?target=https%3A///path/FastImageCache& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&FastImageCache&i class=&icon-external&&&/i&&/a& and &a href=&///?target=https%3A///AFNetworking/AFNetworking& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&AFNetworking&i class=&icon-external&&&/i&&/a&优点与一身)&br&&/li&&/ul&&img src=&/v2-4439891daccb1e30f1d64dfacd975d9c_b.jpg& data-rawwidth=&1050& data-rawheight=&420& class=&origin_image zh-lightbox-thumb& width=&1050& data-original=&/v2-4439891daccb1e30f1d64dfacd975d9c_r.jpg&&FlyImage在iPhone6 Plus上处理『当图片滚动时』场景所消耗的内存,可以看到几乎和UIKit占用的相当,SDWebImage可以下课啦哈哈。&br&&br&&img src=&/v2-70ddc7f3e84d6d8d92b0a3e9_b.jpg& data-rawwidth=&950& data-rawheight=&1172& class=&origin_image zh-lightbox-thumb& width=&950& data-original=&/v2-70ddc7f3e84d6d8d92b0a3e9_r.jpg&&这张图是FlyImage处理170张小图时的内存表现,同样完爆SDWebImage,并且从帧率上可以看出SDWebImage已经卡到爆炸了。我正计划换掉SDWebImage,另外对于FlyImage处理GIF时的表现暂不清楚,所以有大量GIF图需要处理的同学仍需自行测试。&br&&br&第一次开发中引入数据库的时候使用过FMDB,其实蛮强大的,只不过需要写sql语句,select * from user(从user表中筛选出全部数据)。&br&&br&后来慢慢的抛弃了它,一点也不面向对象。好吧,其实我是想说还是CoreData好用,至少你不会因为不会写sql而没法保存数据。(接手过的项目竟然还有全部存NSUserDefault的,真是没脾气了)&br&&br&看过一篇对比CoreData和FMDB查询大数据性能的文章,FMDB赢了,不过还是推荐用CoreData。&br&&br&&br&-------------------- 割 ---------------------&br&&br&&br&&b&动画效果&/b&&br&&ul&&li&&a href=&///?target=https%3A///jdg/MBProgressHUD& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MBProgressHUD&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=https%3A///SVProgressHUD/SVProgressHUD& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVProgressHUD&i class=&icon-external&&&/i&&/a& (推荐)&br&&/li&&li&&a href=&///?target=https%3A///facebook/pop& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pop&i class=&icon-external&&&/i&&/a&&/li&&/ul&&br& 上面说到的没网了提示用户的MBProgressHUD,用起来吧,当然还有很多转菊花(loading)的开源项目,同样是我使用最多的。&br&&br&&img src=&/ff2e98fb2c37eaba3af557b_b.jpg& data-rawwidth=&746& data-rawheight=&204& class=&origin_image zh-lightbox-thumb& width=&746& data-original=&/ff2e98fb2c37eaba3af557b_r.jpg&&&br&&br&pop是facebook paper使用的动画效果,开源了出来,很赞啊,不过应用到项目中的可能性很低。。。太特么炫酷了。&br&&br&-------------------- 割 ---------------------&br&&br&&br&&b&其他&/b&&br&第三方库管理工具,&a href=&///?target=http%3A//cocoapods.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CocoaPods&i class=&icon-external&&&/i&&/a&,有时间可以学习一下。
&a href=&///?target=https%3A///CocoaPods/CocoaPods& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CocoaPods GitHub&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///github/list/ios/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Github repos (iOS)&i class=&icon-external&&&/i&&/a&
这是一个收集了很多iOS开源项目的页面,给作者赞一个。&br&&br&&a href=&///?target=https%3A///Carthage/Carthage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Carthage&i class=&icon-external&&&/i&&/a& 另外一款包管理器,可以尝试。&br&&br&有不完善的地方欢迎指出,我会及时补充上来。&br&&br&持续更新中。。。
谢邀请 看了上面的答案,值得关注学习的开源项目其实还真没有几个。 首先,学习这类开源项目的主要目的是为了实现产品汪需求,如果不是这个目的,完全可以看,当前最火的开源项目都在这里,当然你需要过滤一下语言。 好了,介绍几…
说饱和是饱和的;说不饱和也是不饱和的。&br&&br&几年间移动互联网的飞速发展以及互联网创业的大潮来袭,使得 iOS 开发一职位炙手可热。由于前几年 iOS 开发的稀缺以及自学门槛相对其他技术高(需要 Mac 和 iPhone),加之创业公司大都以移动端产品作为入口,iOS 开发的薪资也水涨船高。&br&&br&相比其他开发岗位,iOS 开发一职缺口大,薪资高,同时千金难求。培训行业瞄准了时机大力}

我要回帖

更多关于 mybatis 返回long类型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信