经验分享
文章平均质量分 70
Thinker361
引领技术巅峰,黑客无所不能。年轻很值钱,不珍惜就不值钱。
展开
-
在写一个iOS应用之前必须做的7件事(附相关资源)
本文由CocoaChina--不再犹豫(tao200610704@126.com)翻译作者:@NIkant Vohra原文:7 Things you must absolutely do before writing an iOS app这两年,我一直在编写并发布有质量的iOS 应用。我发现大多数的开发人员有直接跳进编码应用程序的核心逻辑的倾向,因为这是乐趣原创 2016-03-17 09:10:23 · 844 阅读 · 0 评论 -
iOS面试必看,最全梳理
原文序言目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡。矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力!OC的理解与特性OC作为一门面向对象的语言,自然具有面向对象的语言特性:原创 2016-04-03 16:31:58 · 1615 阅读 · 0 评论 -
如何实现自己没实现过的需求之文本动画
前言记得以前看到过一个很赞的文字效果的动画,类似于这样:当时被惊艳到了,最近偶然间又再次见到,依然还是那么喜欢。假设我们现在需要实现这样的需求。一般碰到需求我们都会去 GitHub 上看看,俗称找轮子(GitHub 基本上只有你想不到的,就没有它没有的)。大多数情况下,没有问题。或者说有点小问题:轮子太多,无从下嘴。选择选轮子就像选姑娘,你不知道后面等着你的是什么 —–罪恶原创 2016-03-22 15:02:06 · 1119 阅读 · 0 评论 -
实现一个TODO宏
实现一个TODO宏实现一个能产生warning的TODO宏,用于在代码里做备忘,效果: 下面一步步来实现这个宏。Let’s do it手动让编译器报警(报错)可以用以下几个方法: 12345#warning sunnyxx#error sunnyxx#pragma message "sunnyxx"原创 2016-03-22 15:11:19 · 634 阅读 · 1 评论 -
教你阅读图书的「方法论」- 评《如何阅读一本书》
引言最近常圳给我推荐了 《如何阅读一本书》 这本书。这本书最初出版于 1940 年,然后于 1970 年进行了增补改写。到现在已经面世 70 多年,在我写这篇笔记的时候,该书在京东上的 销售排名 位于社会科学销量榜第 2 名,可见该书是多么畅销。在花两周读完本书之后,我最大的收获是学会了如何更加科学地阅读。在本书中,作者将阅读分为四个层次,并且逐条讲解每一个层次的阅读方法,以及需要达到原创 2016-03-22 15:16:54 · 908 阅读 · 0 评论 -
和时间做朋友 - 读《奇特的一生》
引言一切都不是我们的,而是别人的,只有时间是我们自己的财产。造物主交给我们,归我们所有的,只有这个不断流逝的、不稳定的东西。就连这个东西,谁只要愿意,都可以把它从我们手里剥夺走。—— 古罗马哲学家:赛纳卡今天要介绍的是 《奇特的一生》 这是一本关于时间的书,春节期间看到池建强在微信读书中推荐,于是就一口气读完了。该书讲述苏联科学家柳比歇夫将自己的一生用时间来计划,通过分析柳比歇原创 2016-03-22 15:18:53 · 1300 阅读 · 0 评论 -
UIScrollView的重用机制的理解
UIScrollView的重用机制的理解。大家都知道这个UIScrollView。UItableVIew是继承UIScrollView的UItableVIew默认里面有自己的重用机制可以节省内存。UIScrollView是可以用来加载很多图片,有利用显示,但是没有重用机制会在真机上crash。网上找了些资料:主要有两种解决的方案1.图片内存托管将scrollview上所有的原创 2016-03-11 12:21:56 · 1740 阅读 · 0 评论 -
iOS GitHub Top 100 简介
主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况.项目名称项目信息1. AFNetworking作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNe原创 2016-03-13 11:20:31 · 501 阅读 · 0 评论 -
Github上600多个iOS开源项目分类及介绍
iOS 开源项目 、 开源框架、开源模块列举http://github.ibireme.com/github/list/ios/原创 2016-03-13 11:28:35 · 462 阅读 · 0 评论 -
iOS 视图控制器转场详解(上)
推荐序这是一篇长文,详细讲解了视图控制器转场的方方面面,配有详细的示意图和代码,为了使得文章在微信公众号中易于阅读,seedante 辛苦将大量长篇代码用截图的方式呈现,另外作者也在 Github 上附上了完整的示例代码,满满的诚意之作。作者 seedante 是一个低调人士,只愿意透露他的 GitHub:https://github.com/seedante 。感谢作者授权微信独翻译 2016-03-14 11:05:51 · 992 阅读 · 0 评论 -
iOS 视图控制器转场详解(下)
推荐序这是一篇长文,详细讲解了视图控制器转场的方方面面,配有详细的示意图和代码,为了使得文章在微信公众号中易于阅读,seedante 辛苦将大量长篇代码用截图的方式呈现,满满的诚意之作。作者 seedante 是一个低调人士,只愿意透露他的 GitHub:https://github.com/seedante 。感谢作者授权微信独家代理,本文的所有打赏归 seedante 所有。翻译 2016-03-14 11:06:48 · 1579 阅读 · 0 评论 -
使用coredata和sqlite
首先,coredata和sqlite的概念不同,core为对象周期管理,而sqlite为dbms。下面的讨论以使用core data来做数据持久化并使用sqlite做backend存储的情况为前提。使用方便性。实际上,一个成熟的工程中一定是对数据持久化进行了封装的,因此底层使用的到底是core data还是sqlite,不应该被业务逻辑开发者关心。因此,即使习惯写SQL查询的人,也原创 2016-03-25 10:51:33 · 615 阅读 · 0 评论 -
10种常见数据结构简易分析
在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。1.String/Array/Matrix在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成原创 2016-04-12 23:56:33 · 10875 阅读 · 0 评论 -
从产品经理的角度算一算,做一个 APP 需要多少钱
作为互联网从业者,被外行的朋友们问及最多的问题是,“做一个网站多少钱?”或者“做一个 APP 需要多少钱?”。作为做过完整网站项目和 APP 的人,今天从产品经理的角度,一起来算一下中小型 APP 从无到有需要做哪些工作,以及为达成使命,需要付出多少金钱代价。以下内容的前提是:深圳、移动互联网方向。包含研发一个新产品过程中一些常见的工作,并非十全十美。首先假设在原创 2016-04-13 08:59:54 · 1121 阅读 · 0 评论 -
写了 35 年代码的老程序员的最大遗憾
大约不到20年前,我处在人生十字路口上。我的第二家公司当时已经花了5年时间为出版行业打造专业图表制作软件,不过在那互联网即将大热的年代,出版商们已经逐渐向互联网领域转移,我们的业务渐渐枯竭。那时候我已经是一个有 13 年编程工作经验,而且同时有 9 年公司运营经验的综合性人才了。我不想再同时又干技术又干管理了。我的第一家公司(1985-1987年)的主要业务是打造一款电子表格程序,并有自动翻译 2016-04-13 09:26:54 · 7875 阅读 · 2 评论 -
iOS自定义TabBarViewController
UITabBarController 虽然很强大,基本上也能满足常见的需求,但是用起来还是没有那么畅快。有时候,总有一些变态的需求,需要自定义。之前也看过一些别人自定义的TabBarController,但是都赶紧不尽理想,准确的说,很多自定义的都是继承自UITabBarController即是半自定义的。根本谈不上真正意义上的自定义。今天就分析一下,我认为比较好的一个自定义TabBarC原创 2016-03-10 14:08:22 · 1890 阅读 · 0 评论 -
iOS自定义TabBarViewController
一、自定义的思路iOS中的TabBarController确实已经很强大了,大部分主流iOS应用都会采用。但是往往也不能满足全部的需求,因此需要自定义TabBar,自定义需要对系统的TabBar工作方式有很好的理解,自定义需要勇气。自定义TabBar的原则:尽量利用系统自带TabBar,只改需要改的地方。二、自定义TabBar的总体过程1.先把自原创 2016-03-09 17:43:05 · 647 阅读 · 0 评论 -
你真的了解iOS代理设计模式吗?
本文是投稿文章,作者:刘小壮在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数。这篇文章会涵盖代理的使用技巧和原理,以及代理的内存管理等方面的知识。我会通过这些方面的知识,带大家真正领略代理的奥妙。写的有点多,但都是干货,我能写下去,不知道你有没有耐心看下去。本人能力有限,如果文章中有什么问题或没有讲到的点,请帮忙指出,十分感谢!原创 2016-03-17 09:12:07 · 6955 阅读 · 2 评论 -
2015年iOS开发者收入调查报告--企业开发者
本文为本站原创,转载请联系support@cocoachina.com获取授权。应部分开发者建议,将薪资+地域+工作年限进行了细分,其他地区的样本数较少,木有代表性,列出以下4个城市的细分表,供大家参考~~原创 2016-03-17 09:17:58 · 973 阅读 · 0 评论 -
一个减少App Store审核被拒的小技巧--善用iTunes Connect中被遗忘的字段
本文由CocoaChina--zheng0115(社区ID)翻译作者:@Brenden Mulligan原文:A simple tip to reduce App Store rejections在过去的两年中,我们团队在App Store中为7款APP推出了60个发布版本。因此,我们已经熟知什么才是用户在想要的,以及如何定位和营销App以使其获得最高的安装翻译 2016-03-17 09:20:17 · 796 阅读 · 0 评论 -
腾讯iOS预审团队分享:被苹果拒绝100多次,一半原因是“IAP异常”
iOS审核一直是每款移动产品上架苹果商店时都要面对的,但审核过程并不是一帆风风顺的,会因为很多种原因被苹果拒绝。据腾讯内部数据,2014年腾讯iOS审核被苹果拒绝超100次,理由也有很多种类,其中50%以上的情况都是因为”IAP异常“。腾讯预审团队从以下两方面做了探索,经过近一年的推行和数据监控,iOS审核月通过率从过往的35%提升到85%+:1.分析过往提审被拒的案例,并结合原创 2016-03-17 09:25:26 · 1927 阅读 · 0 评论 -
iOS版微软自拍App上架:自然美颜 上手简单
如今智能手机拍摄功能越来越强大,凭借着更高像素以及移动互联网社交分享的便利性,手机已然取代传统数码相机成为了爱拍一族必不可少的随身利器。然而爱美之心人皆有之,仅依靠自带相机的拍摄效果慢慢无法满足用户的高标准,对此市面上开始集中涌现各式各样的美颜自拍应用。考虑到自拍应用如此高的受众,微软显然也想来分一杯羹。本周由微软亚太研发集团推出的照片优化应用《微软自拍》正式上线iOS应用商店。相比其他照原创 2016-03-17 09:36:19 · 692 阅读 · 0 评论 -
iOS 玩转推送通知
前言推送通知,想必大家都很熟悉,关于原理之类的,这里就不过多阐述。在这里我们主要介绍下iOS8及iOS9之后关于推送的新功能。大家可能见过听说过,但可能有一些朋友并没有上手做过。这篇文章便给大家详细介绍推送中的快捷按钮及快捷回复等功能的实现。快捷点赞,如微博点赞功能效果图大家可以先看下:首先先说如何为自己的推送添加快捷功能原创 2016-03-17 13:30:28 · 944 阅读 · 0 评论 -
设计模式六大原则(1):单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T原创 2016-03-08 15:02:39 · 426 阅读 · 0 评论 -
设计模式六大原则(2):里氏替换原则
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子原创 2016-03-08 15:04:01 · 391 阅读 · 0 评论 -
设计模式六大原则(3):依赖倒置原则
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接原创 2016-03-08 15:08:01 · 346 阅读 · 0 评论 -
设计模式六大原则(4):接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:原创 2016-03-08 15:10:34 · 378 阅读 · 0 评论 -
设计模式六大原则(5):迪米特法则
定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么原创 2016-03-08 15:12:09 · 465 阅读 · 0 评论 -
设计模式六大原则(6):开闭原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 开闭原则是面原创 2016-03-08 15:13:12 · 626 阅读 · 0 评论 -
经验之谈!35岁程序员的独家面试经历
创业失败后,在找工作。选择了三家(两家上市公司,一家将上市),都走到了关键的节点。我记录了面试过程中被问到的一些问题,希望对自己将来的面试有帮助,也希望对别人有所启发。我的经历和现状与被问到的问题息息相关,如下:2002年毕业。 2002~2005做售后技术支持,2005离职转做软件开发。 2009开始做项目经理,后来做部门经理,期间还有50%左转载 2016-03-20 18:18:06 · 1909 阅读 · 0 评论 -
iOS开发之音频解析第三方框架介绍
最近在做iOS音频相关的App,在做之前选择了三种解决方案。第一种方案是使用苹果自带的音频解析类AVPlayer,虽然AVPlayer也可以播放音频。但是要做类似于QQ音乐这样的App,使用AVPlayer就显得无能为力了。第二种解决方案使用第三方音频解析框架AudioStreamer,这是一个老外写的音频解析框架。其中包括本地和网络的音频数据解析。核心文件 AudioPlayer.h 和 A转载 2016-03-21 09:41:28 · 4117 阅读 · 1 评论 -
一个简单登陆示例的MVC和MVP实现
登录示例:MVC自上篇《iOS基于MVC的项目重构》总结之后,我又思考了下面这个问题:在UIKit自身的设计中UIViewController是被当做C还是V呢?例如我们点击View上某个Button时,可能会使用调用self.navigationController的pushViewController:animated:方法来跳转到一个新的界面。在这个场景中,点击事件通原创 2016-04-19 15:02:44 · 1389 阅读 · 0 评论