04 2016 档案
摘要:步骤 打开Xcode,创建新工程。手下留情,请先看图! 在TARGETS下选中工程,在Build Settings下更改几个参数。 打开Xcode,创建新工程。手下留情,请先看图! 在TARGETS下选中工程,在Build Settings下更改几个参数。 在TARGETS下选中工程,在Build
阅读全文
摘要:第一种方法:直接新建一个工程。 1、新建项目-> 选择 “Cocoa Touch Static Library” 2、添加库需要包含的源代码,将你工程里的代码添加到打静态库工程里: 3、配置一下工程: 4、选择需要暴露出来的 .h 文件, .m 文件会自动编译到 .a 文件中: 需要暴漏出的文件类在
阅读全文
摘要:下面这个界面有没有觉得很眼熟。打开你手里的App仔细观察,你会发现很多都有实现这个功能。比如美团外卖的首页模块,新浪微博的个人详情页面。要怎么样才能快速的实现这个功能呢!那下面由笔者来告诉你如何三行代码,集成这个功能。。。 原理介绍: 要想把一个view设计成透明的我们一下子就会想到两种方案,设置v
阅读全文
摘要:一、NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法、请求头、请求体.... (3)NSMutableURLRequest:NSURLRequest的子类 (4)NSURLCo
阅读全文
摘要:离屏渲染(Offscreen Render) objc.io 出品的 Getting Pixels onto the Screen 的翻译版绘制像素到屏幕上应该是国内对离屏渲染这个概念推广力度最大的一篇文章了。文章里提到「直接将图层合成到帧的缓冲区中(在屏幕上)比先创建屏幕外缓冲区,然后渲染到纹理中
阅读全文
摘要:昨天用简书App的时候觉得这个View的弹出效果特别好,而且非常平滑,所以我就尝试写了一个,和简书App上的效果基本一致了: 下面开始讲解: 1.首先我们要知道这个页面有几个View?这个页面其实有四个View,self.view , 图中白色VC的View rootVC.view ,白色VC上的m
阅读全文
摘要:工厂模式三部曲:简单工厂模式 工厂模式三部曲:工厂方法模式 前言 这是工厂模式三部曲中的最后一篇了,在这篇文章中将会讲述抽象工厂模式,抽象工厂模式正如其名字一样,非常抽象。但是抽象工厂模式的功能却十分强大,对抽象工厂的利用也非常好。 这篇文章中会像本系列第一篇一样,给出普通实现方式和使用了反射机制的
阅读全文
摘要:首先,什么是block?block其实就是一个代码块,把你想要执行的代码封装在这个代码块里,等到需要的时候再去调用。那block是OC对象吗?答案是肯定的。 做一道很简单的关于block的测试题: int (^testBlock) (int) = ^(int num) { return num++;
阅读全文
摘要:什么是Multipeer Connectivity? 在iOS7中,引入了一个全新的框架——Multipeer Connectivity(多点连接)。利用Multipeer Connectivity框架,即使在没有连接到WiFi(WLAN)或移动网络(xG)的情况下,距离较近的Apple设备(iMa
阅读全文
摘要:iOS 8提供了一个令人兴奋的新API来创建交互式通知(interactive notifications),它能让你在你的应用之外为用户提供额外的功能。我发现网上还没有关于如何实现它的比较好的示例教程,所以我将在这篇文章里来实现一个简单的交互式通知示例,分享给大家。 为了创建交互式通知,需要iOS
阅读全文
摘要:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。 由于过程较为复杂,因此本文只贴出部分关键代码。 主控制器的关键代码: YYViewController.m 1 #import "YYViewController.h" 2 3
阅读全文
摘要:iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求。 详细信息,请参考:ht
阅读全文
摘要:前言 在面试中,面试官可能会问这样的问题,loadView有什么作用,它与viewDidLoad有何区别 首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载。 loadView方法 当我们用到控制器view时,就会调用控制器view的get方法,在get方法内部,首先判断
阅读全文
摘要:前言 紧接着上一篇文章开始写,这是本系列中的第二篇文章了,这篇文章主要讲一下工厂方法模式。在最后一篇抽象工厂模式的文章中,将会对这三篇文章进行一次总结。 这篇文章中并没有给出反射机制实现的代码,主要是因为工厂方法模式就是为了解决简单工厂模式的一些缺点,然而使用了反射机制的简单工厂模式已经不具备这些缺
阅读全文
摘要:我们在封装网页的时候经常会遇到需要往网页里面的控件添加数据,但是怎么添加又成了难点。本人最近在开发的时候就遇到这样的事,解决之后,来和大家分享一下。 //以必应网站为例 [web loadRequest: [NSURLRequestrequestWithURL: [NSURL URLWithStri
阅读全文
摘要:iOS开发中经常会遇到UILabel大小尺寸不固定的情况,需要根据文字内容变化,这时候就需要计算文字大小以自动改变UILabel的尺寸。 iOS7之后计算尺寸只需要一个方法就可以: 实例:
阅读全文
摘要:引言: 让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是不是存在多余的GPU渲染?业务这点工作量对于越来越强大的设备面前显得微不足道,但作为一个细心的开发者,我觉得很有必要来谈谈iOS中的视图优化。 本文从开发者最容易犯错的地方出发,结合例
阅读全文
摘要:UINavigationController控制器push子控制器时,修改返回控件的样式,需要重写系统方法: 在添加跟控制器的时候也执行该push方法,所以需要进行判断子控制器; 可以不用设置backBtn的frame,但是[backBtn sizeToFit];必须写,否则按钮不显示;OnClic
阅读全文
摘要:1、产品设计图 可以以6的长宽比 750*1134来设计。这些图片用于描述app是什么样子的,这是app开发人员的开发参考。 2、产品切图 将设计师将设计稿切成可以用来开发的图 颜色值 iOS颜色值取 RGB各颜色的值比如某个色值,给予iOS开发的色值为 R:12 G:34 B:56 给出的值就是
阅读全文
摘要:键路径 在一个给定的实体中,同一个属性的所有值具有相同的数据类型。 键-值编码技术用于进行这样的查找—它是一种间接访问对象属性的机制。 - 键路径是一个由用点作分隔符的键组成的字符串,用于指定一个连接在一起的对象性质序列。第一个键的性质是由先前的性质决定的,接下来每个键的值也是相对于其前面的性质。
阅读全文
摘要:什么是简单工厂模式? 简单工厂模式中定义一个抽象类,抽象类中声明公共的特征及属性,抽象子类继承自抽象类,去实现具体的操作。工厂类根据外界需求,在工厂类中创建对应的抽象子类实例并传给外界,而对象的创建是由外界决定的。外界只需要知道抽象子类对应的参数即可,而不需要知道抽象子类的创建过程,在外界使用时甚至
阅读全文
摘要:Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。
阅读全文
摘要:在一般的视频类APP播放的时候都会支持横屏,这样做的好处就是便于观看。你的项目中支持横屏吗?我们一起了解一下,在iOS9中横竖屏设置的处理方法吧! 支持横竖屏配置 在iOS6以后,如果APP需要支持横屏,需要在xcode设置中General里面进行勾选配置: 配置完成之后,我们可以看一下Info.p
阅读全文
摘要:自从IOS7后UINavigationBar的一些属性的行为发生了变化.你可以在下图看到: 现在,如果你要修改它们的颜色,用下面的代码:
阅读全文
摘要:公司项目用到一个三方开源库,里面有个bug,不能改动源码,我想来想去,只能通过runtime这个万能的手段来解决。但是runtime 并不怎么会用,怎么办,马上学习呗。说到runtime,它是Objective-C里面最核心的技术,被人们传呼的神乎其神,但是感觉有一层神秘的面纱笼罩其上,毕竟使用场景
阅读全文
摘要:GCD本质线程自动管理指令包 GCD优点: 1.GCD 本身自带有线程锁的效果,能通过推迟昂贵计算任务并在后台运行它们来改善应用的响应性能。 2.GCD 提供了更易于使用的并发模型(效果方面类似于对锁和线程进行封包,程序员使用的过程中本身可以不直接接触锁和线程)避开并发陷阱(锁和线程的相关陷阱)。
阅读全文
摘要:手机设备的内存是一个共享资源。应用程序可能会不当的耗尽内存、崩溃,或者遭遇大幅度的性能降低。 Facebook iOS客户端有很多功能,并且它们共享同一块内存空间。如果任何特定的功能消耗过多的内存,就会影响到整个应用程序。这是可能发生的,比如,这个功能导致了内存泄露。 当我们分配了一块内存,并设置了
阅读全文
摘要:forkingdog关于UITableView优化的框架其实已经能够应用在一般的场景,且有蛮多的知识点供我们借鉴,借此站在巨人的肩膀上来分析一把。 至于UITableView的瓶颈在哪里,我相信网上随便一搜就能了解的大概,我这里顺便提供下信息点: 1 //罪魁祸首 2 tableView:cellF
阅读全文
摘要:在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来。便于自己开发使用,也顺便分享给大家。 动画 awesome-ios-animation收集了iOS平台下比较主流炫酷的几款动画框架 RCTRefreshControlqq的下拉刷新 TBIconTransiti
阅读全文
摘要:前言: 上篇文章写的是Runtime的一个入门教程,刚哥问我那个Associated Objects加回调是啥时候用,那我就来告诉你啦!我们在使用UIAlertView的时候用的多。 传统的UIAlertView: 在一个类中有多个UIAlertView,不同的UIAlertView对应不同的事件,
阅读全文
摘要:IOS产品开发中常常会遇到这种情况,线上发现一个严重bug,可能是一个crash,可能是一个功能无法使用,这时能做的只是赶紧修复Bug然后提交等待漫长的审核,即使申请加急也不会快到那里去,即使审核完了之后,还要盼望着用户快点升级,用户不升级还是在存在同样的漏洞,这样的情况让开发者付出了很大的成本才能
阅读全文
摘要:UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本文也并不提倡开发者再使用UIAlertView,本文的目的是探讨如何将原来的给变量赋值和通过Dele
阅读全文
摘要:1.如何追踪app崩溃率,如何解决线上闪退 当iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上。crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈跟踪信息和内存映像,这样就能够通过解析这些信息进而定位crash发生时的代码逻辑,从而找到App闪退的原因。通
阅读全文
摘要:在iOS开发中,谈到多线程,大家第一时间想到的一定是GCD。GCD固然是一套强大的多线程解决方案,能够解决绝大多数的多线程问题,但是他易于上手难于精通且到处是坑的特点也注定了想熟练使用它有一定的难度。而且很多人嘴上天天挂着GCD,实际上对它的实际应用也不甚了解。再者说,在现在的主流开发模式下,能用到
阅读全文
摘要:移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全。所以当我们谈论App安全问题的时候一般来说在以下三类范畴当中。 App代码安全,包括代码混淆,加密或者app加壳。 App数据存储安全,主要指在
阅读全文
摘要:移动端屏幕空间寸土寸金,即便如此,也无法阻止广告的扩张,移动端广告主要有以下几种: 1. Banner 广告 移动端的 Banner 广告是对 web Banner 广告的直接复制,直接嵌入在屏幕的顶部或底部,下图是空气质量指数这个 APP 的 Banner 广告: 2. 开屏广告 开屏广告出现在应
阅读全文
摘要:最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法:一、程序中提供给用户自己选择的机会;二、根据当前用户当前移动设备的语言自动将我们的app切换对应语言。 第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,
阅读全文
摘要:1 typedef enum : NSUInteger { 2 Fade = 1, //淡入淡出 3 Push, //推挤 4 Reveal, //揭开 5 MoveIn, //覆盖 6 ...
阅读全文
摘要:用户按下主屏幕按钮将调用applicationWillResignActive:,如果谈们稍后将应用切换回前台,将调用applicationDidBecomeActive:。如果用户接听电话,也会发生相同序列的事件。最神奇的是应用启动时也会调用applicationDidBecomeActive:。
阅读全文
摘要:今天和同事在处理一处用strong声明的Block属性引发的问题时偶然发现的。在诸多教程中都会讲到:声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong)。不过在声明Block时,使用strong和retain会有截然不同的效果。strong会等于copy,而r
阅读全文
摘要:首先如果遇到应用卡顿或者因为内存占用过多时一般使用Instruments里的来进行检测。但对于复杂情况可能就需要用到子线程监控主线程的方式来了,下面我对这些方法做些介绍: Time Profiler 可以查看多个线程里那些方法费时过多的方法。先将右侧Hide System Libraries打上勾,
阅读全文
摘要:1 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 2 dispatch_async(queue, ^{ 3 dispatch_group_t group = dispatch_group_create(); 4 ...
阅读全文
摘要:CloudKit,是苹果最新推出的基于iCloud的一个云端数据存储服务,提供了低成本的云存储并能作为一个后端服务通过用户们的iCloud账号分享其应用数据。 CloudKit主要由两个部分组成: 一个仪表web页面用于管理公开数据的记录类型。 一组API接口用于iCloud和设备之间的数据传递。
阅读全文
摘要:本文将介绍创建一个Xcode4插件所需要的基本步骤以及一些常用的方法。请注意为Xcode创建插件并没有任何的官方支持,因此本文所描述的方法和提供的信息可能会随Apple在Xcode上做的变化而失效。另外,由于创建插件会使用到私有API,因此Xcode插件也不可能被提交到Mac App Store上进
阅读全文
摘要:1、创建BIDTinyPixDocument类 2、主控制器代码 3、创建BIDTinyPixView视图类,用于显示用户可编辑的网格。 4、添加BIDDetailViewController内容 5、添加iCloud支持 创建授权文件 6、如何查询 7、保存到哪里 8、将首选项保存到iCloud
阅读全文
摘要:浏览器一般缓存图片、CSS、JS等静态文件,因为这些文件的更新频率相对来说比较低,合理利用浏览器的缓存对网站的性能提升有很大帮助。HTTP缓存分为两部分,分别是本地缓存和缓存协商,当本地缓存不生效时会启用缓存协商。HTTP缓存主要由HTTP协议的头(Header)信息来制定。 本地缓存 本地缓存是指
阅读全文
摘要:Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。 Core Animation可以用在Mac OS X和iOS平台。 Core Animation的动画执行过程都
阅读全文
摘要:http://blog.treney.com/index.php/archives/CoreAnimation.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
阅读全文
摘要:序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡。矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力! OC的理解与
阅读全文
摘要:1、导入SQLite库和头文件 1 #import <sqlite3.h> 2、打开数据库,如果在打开的时候遇到了问题,则关闭它并抛出一个断言错误。 3、确保有一个表来保存数据 4、加载数据 创建一个SELECT来从数据库请求所有行,并要求SQLite准备我们的SELECT。这里是告诉SQLite按
阅读全文
摘要:1、创建一个类用于归档和解档,并遵循<NSCoding, NSCopying>。 @property (copy, nonatomic) NSArray * lines; 2、展示内容 订阅通知UIApplicationWillResignActiveNotification 3、应用在终止运行或进
阅读全文
摘要:1、属性列表 获取Document目录并在其后附加数据文件的文件名,这样就是数据文件的完整路径。 检查数据文件是否存在,如果不存在不加载它;如果存在就用该文件的内容实例化数组。 从属性列表中加载数据后,我们获得了对应用实例的引用,并使用该引用订阅UIApplicationWillResignActi
阅读全文
摘要:1、创建 其中,Root.plist中为设置 2、读取应用中的设置 3、在应用中修改默认设置 4、注册默认值 5、保证设置有效(我们注册所有控制器,以便接收从暂停执行状态唤醒的应用发送出来的通知) 每个控制器都订阅我们关注的通知。 6、撤销对特定通知的订阅
阅读全文
摘要:新建一个setting.bundle后结构如下: 大家一般都在Root.plst里面添加删除条目,那么要本地化/国际化语言怎么办? 看目录应该是新建一个en.lproj这样的目录,例如中文的为:zh_CN.lproj。 在xcode里右键->Show in finder,然后再选中右键->显示包内容
阅读全文
摘要:1.国际化.首先创建一个工程,在 Localizations里面添加你需要支持的语言 2.然后对要国际化的东西 如,故事板 右侧的属性 /inpector ,选择本地化语言 Localization里面勾选上 那么故事板上的控件都能支持国际化了 3.设置不同的语言环境下的应用显示名称,首先给 inf
阅读全文
摘要:PS 感谢大家的关注,由于我本想开源4个库,除了router, 另外三个分别是native dispatcher, web dispatcher 和 react dispatcher , 所以router 对native dispatcher 有了库依赖,为了共同学习,我把router单独分离成po
阅读全文
摘要:其实在研究这个库之前,市面上已经有很多类似的模型序列化成JSON及反序列化库(如Mantle、MJExtension)了,推荐他只是因为他高端的性能和容错(错误对象类型赋值到属性时YYMODEL会尝试自动转换,避免Crash)以及低侵入(不需要你的MODEL类去继承某个基类、因为他是Category
阅读全文
摘要:公司App里面有个需求,即所有界面都是竖屏,且不允许横屏切换,唯独有一个图表界面允许横屏。那么,根据此需求处理如下: 首先,确保App本身应该允许转屏切换: 再次,我的App里面都是走UINavigationController进行界面push切换的,所以首先创建一个UINavigationCont
阅读全文
摘要:Ios插件开发 http://www.exmobi.cn/course/course_26.html Android插件开发 http://www.exmobi.cn/course/course_25.html
阅读全文
摘要:React-Native学习指南 本指南汇集React-Native各类学习资源,给大家提供便利。指南正在不断的更新,大家有好的资源欢迎Pull Requests! 同时还有Awesome React-Native系列 https://github.com/jondot/awesome-react-
阅读全文
摘要:一、 测试周期 测试周期一般为两周,根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管或产品经理确认项目排期。 二、测试资源 测试任务开始前,检查各项测试资源。 二、测试要点 接收版本 本人觉得,这个过程可以直接略过。非专业测试着,不喜勿拍。 UI测试 A) 确保手头的原型图与效果
阅读全文
摘要:关于block 在iOS4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调。这不免让我们想到在C函数中,我们可以定义一个指向函数的指针并且调用: 上面的函数指针可以直接通过(*taskPoint)()的方式调用executeSomeTask这个
阅读全文
摘要:随着各大公司春招的开始,很多小伙伴都行动起来了,我有幸能够加入百度并和大家分享自己的经验心得。由于我面试的都是比较大的公司,所以自然也是做了这方面的准备,因此这篇总结并不一定适合想去创业公司的同学。另外,由于经验本来就是主观性极强的东西,加之笔者水平有限,所以如果有不认可的地方,万望诸君呵呵一笑,抛
阅读全文
摘要:UITableView是工程开发中最经常使用到的UI控件,但是你真的了解它嘛,这里记录几点有用的但你可能并不知道的。 当我们的数据未能显示满一屏幕的时候,UITableView会显示多余的横线,这个时候你如果希望去掉这些横线,你可以加上这句话。 UITableView的分割线默认是开头空15像素点的
阅读全文
摘要:前言 今天有个小需求,在点击导航条上的返回按钮之前要调用某个API,并弹出UIAlertView来显示,根据用户的选项判断是否是返回还是继续留在当前控制器。举个简单的例子,当点击导航条上的左上角返回按钮时,就调用我们的API来提示是否知道,点击知道则返回,点击不知道则继续留在当前控制器。 那么问题来
阅读全文
摘要:这篇总结你可以读到: UITableView高度计算和估算的机制 不同iOS系统在高度计算上的差异 iOS8 self-sizing cell UITableView+FDTemplateLayoutCell如何用一句话解决高度问题 UITableView+FDTemplateLayoutCell中
阅读全文
摘要:UITableViewCell高度自适应探索--UITableView+FDTemplateLayoutCell地址: http://www.jianshu.com/p/7839e3a273a6UITableViewCell高度自适应探索--cell预估高度(一)地址: http://www.jia
阅读全文
摘要:UITableView的简单认识 UITableView最核心的思想就是UITableViewCell的重用机制。简单的理解就是:UITableView只会创建一屏幕(或一屏幕多一点)的UITableViewCell,其他都是从中取出来重用的。每当Cell滑出屏幕时,就会放入到一个集合(或数组)中(
阅读全文
摘要:前言 现在App的页面越来越复杂,页面初始化的工作越来越多,加载页面所需的时间也随之增长,如果页面加载的时间过长,这将会影响App的流畅度及用户体验,我们需要解决这一问题。观察过一些日常使用的App,页面间跳转的性能问题总结为以下三种情形: 1).A页面跳转到B页面,由于B页面需要加载大量的数据,所
阅读全文
摘要:1 1 #import "AppDelegate.h" 2 2 #import "XGPush.h" 3 3 #import "XGSetting.h" 4 4 5 5 #define _IPHONE80_ 80000 6 6 7 7 @implementation AppDelegate 8 8 - (void)register...
阅读全文
摘要:升级Xcode7 运行项目发现报错如下: 1.Scheme白名单问题 -canOpenURL: failed for URL: “weixin://app/wxdaae92a9cfe5d54c/” - error: “This app is not allowed to query for sche
阅读全文