iOS屏蔽警告不常用方法

在iOS开发的过程中,我们经常会被一些恼人的warning影响心情,当然常用的屏蔽warning的方法相信大家也已经掌握了不少,现在这里列举几个不常用的仅供大家参考 当使用cocoapods管理第三方库时,第三方库的的warning怎么办? 这个警告,我们时常无能感到很无能为力,因为总不能去依次修改第三方库里的代码来消除警告吧。其实看过cocoapods手册的同学应该会有所了解,只需要在我们的Podfile文件里添加一句,只是一句就可以解决 inhibit_all_warnings! 当我们定义一个变量或者调用一个有返回值的方法却没有使用该值时怎么办? 直接上代码吧 //.h文件 @interface ViewController : UIViewController { ...
点我阅读更多...

iOS分享引擎

随着移动端社交因素的不断深入,通过分享来传播和为应用引流已经成为了一个惯用的做法。虽然现在各个平台已经对分享的操作做了高度的封装,但是如何如何快速方便的引入分享模块也是开发者需要考虑的问题之一。 怎么样的分享比较理想? 这个问题,即使千人千面,但是参与过项目的朋友们也应该有一个初步的共识,无外乎下述几个问题: 方便快捷,能方便的快捷的接入分享模块 UI可定制,分享模块的视觉部分可根据自身应用的特色进行定制 调用清晰,方便的获取分享状态 可定制分享到的平台 易扩展,可容易的扩展上不支持的分享平台,而不涉及核心功能 基本上满足上述要求的分享模块,即便算不上一个好的分享模块,也算是一个不错的分享引擎^_^ 如何实现 我们将分享模块整理为一个插件的形式,每一个分享...
点我阅读更多...

资源定位-页面管理器

页面管理器是一个用于触发和管理app内页面跳转展示的模块,通过该模块调用方可以很方便的触发页面的跳转并传递自定义的参数。将页面的切换操作抽象为一种URI触发机制,克服了不同页面对应不同VC(viewController)时跳转页面时的不灵活性。下面我们将页面跳转管理器统称为PM(Page Manager) 为什么PM? 在我们平时的应用开发过程中,我们应该都碰到过根据远程数据配置页面入口的情况,通常我们会枚举所有情况,根据不同的入参决定要切换到的页面和切换页面的形态,这样做一般会存在如下问题: 页面切换逻辑太过分散,不便管理维护 不同的触发位置都需要实现一份分发逻辑,造成大量的冗余代码 分发方法过于庞大,极大的影响可读性 运营位(数据)、动...
点我阅读更多...

key-value初始化instanceVariable

接上一篇来介绍下,如何用key-value的形式初始化成员变量 背景接上篇,就不在赘述,如果不了解映射规则的话,可以先看看上一篇 key-value初始化property; 有个上一篇的铺垫,这篇将很好被接受,首先我们通过如下方法实例变量的名称获取到实例变量的指针objc_ivar *Ivar; Ivar instanceVariable = class_getClassVariable([self class], variableName.UTF8String); 同样Ivar类型为一个系统类型,我们不知道其内部实现,当然apple也同样为我们提供了方法来处理它,和上篇一样,先对处理它的方法做个描述 OBJC_EXPORT Ivar class_getClassVariab...
点我阅读更多...

key-value初始化property

最近在做项目的过程中,有用到以key-value的形式初始化对象,常规做法就是实现一份儿解析根据不同的映射初始化不同的变量。但由于我们需要让使用方更大的简化调用方式,所以引入了该方法来实现这些功能。其实就是用了一些oc语言的特性来处理这些事情。 为什么提出 由于在处理一些特有逻辑的时候,我们需要用一些key-value的形式或者配置文件来初始化对象,而传统的encode和decode方法则需要在类里边根据自己的实现来实现一份儿代码。所以我们需要一个独立的模块来出来该类问题。要么是不方便,要么是代码过于分散不便管理 从 0 到 1 我们可以定制一个映射规则,这篇文章内的映射规则是这样的 以array的形式传入要初始化的参数,参数的item为一个map类型。map的定义格式为ke...
点我阅读更多...

Unix的特点

Unix的特点:(30多年过去了,这些东西早已变成经典) Everything (including hardware) is a file 所有的事物(甚至硬件本身)都是一个的文件。 Configuration data stored in text 以文本形式储存配置数据。 Small, single-purpose program 程序尽量朝向小而单一的目标设计 Avoid captive user interfaces 尽量避免令人困惑的用户接口 Ability to chain program together to perform complex tasks 将几个程序连结起来,处理大而复杂的工作。 摘抄自 陈皓的 酷壳coolshell;
点我阅读更多...

apple评论页面地址和升级提示

最近发现之前构造的iOS评论页面不好用了,今天收集了下,现在备忘于此: NSString *appstoreReview = nil; if (SYSTEM_VERSION_IS_OVER_IOS7){ appstoreReview = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=[appid]"; }else { appstoreReview = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUse...
点我阅读更多...