iOS大类
文章平均质量分 76
jingcheng345413
这个作者很懒,什么都没留下…
展开
-
Objective-c格式化输出格式
Objective-c格式化输出格式:%@Objective-C object, printed as the string returned by descriptionWithLocale: if available, or description otherwise. Also works with CFTypeRef objects, returning the result of the原创 2017-02-10 12:02:28 · 1064 阅读 · 0 评论 -
JSON特殊字符处理
1.json结构中使用的标示符:都为英文格式 冒号 : 双引号 "" 大括号 {} 方括号 [] 逗号 , 2.使用注意 要确保在json的结构中,使用以上标准的标示符来构建结构。 其中的键值串都由双引号引起来,键值串中不能包含双引号和转义字符。在键值串中可以出现除了双引号之外的以上其它四种标示符,不会出错。 3.需要处理的转义字符 \a 响铃(BEL) \b 退格(BS) \e原创 2017-02-10 12:02:31 · 4893 阅读 · 0 评论 -
iOS开发内存管理总结
一、retain、copy、assign的区别:1.retain:当对一个对象A调用retain,然后赋值给B时,对象的引用计数加1,A和B指向同一个内存地址。2.copy:当对一个对象A调用retain,然后赋值给B时,对象的引用计数加1,而且生成了一个新的拷贝,A和B指向不一样的内存地址。3.assign:当对一个对象A调用retain,然后赋值给B时,对象的引用计数不变,A和B指向同一个地址原创 2017-02-10 12:02:36 · 493 阅读 · 0 评论 -
iOS中通知的使用
一、NSNotificationCenter简介:NSNotificationCenter是一个单进程范围内的全局通知中心,每一个App都有一个单例的NSNotificationCenter,通过一个字符串来注册和触发通知,为不同类之间进行消息传递和函数调用提供了一种比较简单的方法,类之间的关联性比较弱。二、NSNotificationCenter一般使用步骤1.通过[NSNotification原创 2017-02-10 12:02:39 · 787 阅读 · 0 评论 -
iOS零散知识点
1.通过UIDevice类的model属性可以得知当前设备是什么,比如模拟器、iPhone、iPad还是iPod。2.使屏幕不变暗:[[UIApplication sharedApplication] setIdleTimerDisabled:YES];3.UILabel多行文本(1)UILabel可以显示多行文本,它有一个属性叫numberOfLines,可以制定行的数量,超过则不显示。(2)当原创 2017-02-10 12:02:42 · 399 阅读 · 0 评论 -
KVO和KVC简介
一、Key-Value-Observing--KVO(键值观察者模式)(1)简介:此机制可以在一个类中监听另外一个类的属性变化,包括我们自己的类和已有的Cocoa类库中的类。当被监听的类的属性发生了变化时,观察者会收到通知,可以针对属性变化添加自己的动作。(2)为被监听对象注册观察者:指定观察者,要观察的属性的名称,options可以传0值。– addObserver:forKeyPath:opt原创 2017-02-10 12:02:47 · 798 阅读 · 0 评论 -
iOS中的异步和多线程概况
一、异步(1)当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。比如iOS类库中的NSURLConnectioin中使用代理的方式就是异步。(2)iOS类库中的异步调用提供自动的多线程并发,它们使用系统守护进程或者创建自定义的线程来执行任务并且返回结果给调用者(来自苹果文档)。(3)系统自动根据当前运行环境来安排和执行异步请求,对于原创 2017-02-10 12:02:50 · 594 阅读 · 0 评论 -
NSThread使用总结
一、创建NSThread:(1)使用NSThread类方法:detachNewThreadSelector:toTarget:withObject:该方法3个参数分别指定了线程执行的方法,目标,和传递的对象。但是要注意,使用这个方法时,并没有返回任何对象供操作,所以无法管理生成的线程。该方法让系统分发出一个线程,管理权归系统所有。(2)使用NSObject的实例方法:performSelector原创 2017-02-10 12:02:56 · 731 阅读 · 0 评论 -
ARC简介
1、简介:ARC(Automatic Reference Counting),自动引用计数,需要XCode4.2和SDK5.0的支持。它是一个在编译期间工作的技术,编译器在编译的时候会根据变量的作用域为objective-c变量添加合适的retain、release、autorelease等函数。原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成。2、设置XCode为ARC项原创 2017-02-10 12:03:15 · 843 阅读 · 0 评论 -
iOS后台任务
一、概览1.从iOS4.0开始,系统添加了多任务特征,允许应用在按下Home键之后,继续执行后台任务。大部分应用在进入后台之后就进入了挂起状态,只有那些为用户提供重要服务的App能够在进入后台之后继续运行一段时间。2.一般情况下,我们应该尽可能的避免让我们的应用在进入后台之后继续执行代码。如果必须要执行后台任务,推荐使用以下几种方式:(1)需要至少实现一种指定的用户服务,这类服务可以获得比较长的后原创 2017-02-10 12:03:18 · 475 阅读 · 0 评论 -
Objective-C复制解析
一、为什么使用复制?1.C语言以及Objective-C语言总是按值传递的,按值传递意味着是隐式复制。在这里就分为两种情况: (1)如果是非对象类型,对传递过来的值进行更改,只会更改副本,对原始值没有影响,比如:int a = 3; int b; b = a, b = 4; 现在b的值是4,但是a的值仍然是3。 (2)如果是对象类型,则就不一样了。Objective-C对象总是作为指针传递原创 2017-02-10 12:03:21 · 255 阅读 · 0 评论 -
归档和解档-Archiver
一、概念1.归档用于保存对象,包括被归档对象之间的各种相互关系或者依赖性。解档用于重建以前归档的对象与关系。在其它面向对象的语言中,一般使用术语"序列化"来描述归档解档模式。2.归档的对象通常存储为二进制数据,可以在内存或者磁盘中读取,写入。不过在Cocoa中,也有一些对象使用XML文件进行归档和解档,比如NSArray,NSDictionary等等,这是Cocoa中关于归档解档模式的另一个体现。原创 2017-02-10 12:03:24 · 339 阅读 · 0 评论 -
Objective-C单例
一、要点:1.当在应用程序中只需要有类的一个实例,并且可以被其它对象轻松的访问的时候,可以使用单例类。2.首先需要声明一个静态的类的实例变量,并初始化为nil。应该将该实例变量声明在类的实现文件中,表示变量仅在该实现文件中有效。3.添加工厂方法,用于创建并返回单例类的实例,在需要线程安全的情况下,需要添加同步代码。4.为了防止用户调用alloc等方法创建或者做其它影响生命周期的操作,我们需要重载一原创 2017-02-10 12:03:27 · 328 阅读 · 0 评论 -
查看函数库.a函数符号信息
一、概述nm命令可以列出一个函数库文件中的符号表。它对于静态的函数库和共享的函数库都起作用。对于一个给定的函数库,nm命令可以列出函数库中定义的所有符号,包括每个符号的值和类型。还可以给出在原程序中这个函数(符号)是在多少行定义的,不过这必须要求编译该函数库的时候加“-l”选项。 关于符号的类型,这里我们再多讨论一下。符号的类型是以一个字母的形式显示的,小写字母表示这个转载 2017-02-10 14:01:25 · 11457 阅读 · 0 评论 -
通过AVFoundation框架获取摄像头数据
一、概述从iOS4开始,AVFoundation框架增加了几个类,AVCaptureDevice、AVCaptureSession等,可以获取摄像头的数据,而不会弹出类似于ImagePicker一样的界面,我们可以将数据转为一张张的图片,然后我们可以即时显示在视图上,也可以使用FFMPEG或者其它的视频编码工具,来合成视频。二、步骤第一步原创 2017-02-10 14:10:32 · 3137 阅读 · 0 评论 -
CoreText使用介绍
一、概述 1.CoreText是苹果创建的一个用于文字排版的框架,可以实现文字排版、图文混排等复杂的界面效果。从iOS3.2启用。2.一个开源工具类-OHAttributedLabel,就是使用CoreText框架实现的,能够实现一个Label中有不同的文字大小、文字颜色、字体以及链接等。 二、一般使用步骤1.创建NS原创 2017-02-10 14:11:11 · 676 阅读 · 0 评论 -
通过终端,查看sqlite3的存储文件
在调试应用的时候,可以查看数据库里的数据。1、定位到模拟器的目录cd ~/Library/Application\ Support/iPhone\ Simulator2、查找文件名包含OrgChart.sqlite的文件,并打印路径find . -name "OrgChart.sqlite" –print输出:./5.0/Applications/E8654A34-8EC4-4EAF-B531-0转载 2017-02-10 12:05:25 · 2293 阅读 · 0 评论 -
XCode的控制台调试命令
XCode4.0以后,编译器换成了LLVM 编译器 2.0,与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编转载 2017-02-10 12:05:22 · 742 阅读 · 0 评论 -
FMDB简介
FMDB在SQLite基础上封装。 FMDB会在编译的时候知道你是用的ARC还是MRC,然后进行相应处理。 使用方法 一、FMDB有三个主要的类1.FMDatabase – 表示一个单独的SQLite数据库。 用来执行SQLite的命令。2.FMResultSet – 表示FMDatabase执行查询后结果集3.FMDatabaseQueue – 如果你想在多线程中执行多个查询或更新,你应该使用该转载 2017-02-10 12:07:53 · 332 阅读 · 0 评论 -
XMPP扩展协议详解
基本的jabber客户端必须实现以下标准协议(XEP-0211)1、RFC3920 Core http://tools.ietf.org/html/rfc39202、RFC3921 Instant Messaging and Presence http://tools.ietf.org/html/rfc39213、XEP-030 Service Discovery http://www.xmpp.转载 2017-02-10 12:07:32 · 478 阅读 · 0 评论 -
iOS 的 XMPPFramework 简介
XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开发。1登录和好友上下线1.1XMPP中常用对象们XMPPStream:xmpp基础服务类XMPPRoster:好友列表类XMPPRosterCoreDataStorage:好友列表(用户账号)在cor转载 2017-02-10 12:07:30 · 216 阅读 · 0 评论 -
XMPP协议简介
XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。定义全称:转载 2017-02-10 12:07:27 · 397 阅读 · 0 评论 -
Objective-C消息转发
我们要通过一个小例子来简单、通俗的理解一下什么是消息转发以及如何消息转发,希望看完这篇文章时大家会彻底的明白OC的消息。首先,你需要知道这两个概念:OC中调用方法就是向对象发送消息。比如 :1[person run];这实际上这是在给person这个对象发送run这个消息。那么问题来了,当run这个方法只有定义没有实现会怎么样呢?就是经典的报错1*** Terminating app due to转载 2017-02-10 12:07:22 · 199 阅读 · 0 评论 -
CocoaPods版本升级
和往常一样使用CocoaPods管理一个基于FMDB的项目类库命令行执行$ pod install[!] The 'master' repo requires CocoaPods 0.32.1 - 失败,提示需要CocoaPods 0.32.1版本查看CocoaPods版本$ pod --version0.29.0确实需要更新了命令行更新(安装)步骤$ sudo gem update --sy转载 2017-02-10 12:07:19 · 348 阅读 · 0 评论 -
Xcode中的-ObjC和-all_load
有时候使用第三方库的时候,需要在Xcode的Build Settings下Other Linker Flags里面加入-ObjC标志。之所以使用该标志,和Objective-C的一个重要特性:类别(category)有关。根据这里的解释,Unix的标准静态库实现和Objective-C的动态特性之间有一些冲突:Objective-C没有为每个函数(或者方法)定义链接符号,它只为每个类创建链接符号。转载 2017-02-10 12:07:13 · 526 阅读 · 0 评论 -
Mantle For iOS
Mantle可以很方便的去书写一个模型层的代码。使用它可以很方便的去反序列化JSON或者序列化为JSON(需要在MTLModel子类中实现协议)使用一个解释器MTLJSONAdapter去转换模型对象。NSError *error = nil;MyObject *myObject = [MTLJSONAdapter modelOfClass:MyObject.class fromJSONDict转载 2017-02-10 12:06:59 · 318 阅读 · 0 评论 -
Pods简介
每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。开发 i转载 2017-02-10 12:06:53 · 660 阅读 · 0 评论 -
iOS中的XML解析
解析方式分类:解析 XML 通常有两种方式,DOM 和 SAX:DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值。iOS中XML解析是本文要介绍的内容,在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML、Touc转载 2017-02-10 12:06:02 · 615 阅读 · 0 评论 -
OC语法简化
很多刚从其他编程语言转到Objective-C的同学看到长长的函数名会感到崩溃,这种语法让消息的传递像一个英语句子,大大增强了可读性。比如你想初始化一个浮点数,需要这么写:NSNumber value = [NSNumber numberWithFloat:123.45f];从这句中我们能够明确的知道代码的含义,但是,是否连简单的赋值语句也要这么处理呢?苹果在本次新特性中采用了折中的处理方式,针转载 2017-02-10 13:26:03 · 336 阅读 · 0 评论 -
AFNetworking 3.0迁移指南
AFNetworking是一款在OS X和iOS下都令人喜爱的网络库。为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持。如果你的项目以前使用过这些API,建议您立即升级到基于 NSURLSession 的API的AFNetworking的版本。本指南将引导您完成这个过程。本指南是为了引导使用AFNetworking 2转载 2017-02-10 13:24:54 · 262 阅读 · 0 评论 -
应用内购买(IAP)各类型在服务端的验证规则
一、非消耗品(比如单本杂志购买,苹果服务器支持恢复)1.先验证服务器有没有购买记录,如果有,则不处理,此次操作成功 ;2.如果服务器没有购买记录,则到苹果服务器验证(1)首先到正式验证地址验证收据,如果返回状态非0,则再向测试验证地址验证收据。(2)如果最后返回的状态为0,表示是有效购买,则插入,增加权限,此次操作成功。(3)否则失败。二原创 2017-02-10 13:57:46 · 3517 阅读 · 0 评论 -
iOS应用图片命名规则
一、界面图片命名规则:MyImage.png 一般图片命名MyImage@2x.png 高清图片命名MyImage~iphone.png iPhone 和 iPod touch版一般图片命名MyImage@2x~iphone.png iPhone 和 iPod touch版高清图片命名MyImage~ipad.p原创 2017-02-10 13:26:47 · 1191 阅读 · 0 评论 -
Sqlite3中replace语句用法详解
在本例中使用如下数据库表: (图 1)该表的表名为student, 存储学生信息。 所有字段的数据类型都是TEXT 。 其中id和name作为复合主键。 email字段加上了唯一约束。建表语句如下: CREATE TABLE IF NOT EXISTS student ( "id" TEXT, "na转载 2017-02-10 13:26:44 · 1551 阅读 · 0 评论 -
Xcode中StaticLibrary和Framework的共同点和区别
一、共同点:两者其实都是静态库。二、区别1.承载的内容范畴:(1)StaticLibrary的产出物只是一个.a文件,为二进制执行文件。分享给别人的时候,头文件、静态资源文件需要另外提供。(2)Framework为一站式分享方案,其实是一个文件夹,其中包含代码签名、头文件、二进制执行文件、静态资源文件等。2.头文件搜索路径的区别:StaticLibrary需要设置头文件搜索路径,Framework原创 2017-02-10 13:26:35 · 4904 阅读 · 0 评论 -
Podfile语法
一、PodfilePodfile文件详细描述了一个或多个工程中targets的依赖关系。Podfile会默认创建一个隐式的目标链接到工程中用户的第一个target,名称为“default”。一个Podfile可以非常简单:pod 'AFNetworking', '~> 1.0'也可以配置的复杂一点,如下:source 'https://github.com/CocoaPods/Specs.转载 2017-02-10 13:26:06 · 1174 阅读 · 0 评论 -
获取本地沙盒文件的MIMEType
通过发送一个基于本地文件的URL请求,从响应对象中获取MIMEType值。代码如下:NSString *path = [[NSBundle mainBundle] pathForResource:@"测试文件" ofType:@"pdf"]; //创建本地文件URLNSURL *url =原创 2017-02-10 13:26:09 · 269 阅读 · 0 评论 -
XMLDictionary iOS的XML处理包
1.概述:XMLDictionary 提供一种简单的方法实现 iOS 和 Mac OS X 下解析和生成 XML 的方法。XMLDictionary 将 XML 转成 NSDictionary ,也可以将 NSDictionary 装成 XML 结构的字符串。2.实现原理:XMLDictionary 使用 NSXMLParser 类解析XML,使用NSXMLParser的流式解析,将XML结构逐个原创 2017-02-10 12:06:33 · 369 阅读 · 0 评论 -
WKWebView概述
一、概述1.iOS 8 SDK中发布了新的WebView框架----WebKit.framework。2.WebKit使用WKWebView来代替IOS的UIWebView和OSX的NSWebView,并且使用Nitro JavaScript引擎,这意味着所有第三方浏览器运行JavaScript将会跟safari一样快。3.内存问题:(1)UIWebView类的内存问题一直广受诟病,现在问题终于解原创 2017-02-10 12:06:27 · 1554 阅读 · 0 评论 -
使用NSURLProtocol实现离线缓存
一、说明:NSURLProtocol可以拦截任何网络请求,包含UIWebView中发出的所有请求。但是在WKWebView中,只能拦截到最初始的请求,内嵌的资源下载拦截不到。比如通过WKWebView加载"http://www.baidu.com",则只能拦截到"http://www.baidu.com",网页内部的资源加载拦截不到。页面跳转属于最初始请求之内,可以拦截到。二、创建NSURLPro原创 2017-02-10 12:06:25 · 1554 阅读 · 0 评论 -
H5离线缓存
一、概述:1.HTML5的离线web应用允许我们在脱机时与网站进行交互。这在提高网站的访问速度和制作一款web离线应用上(如HTML5游戏)有一定的用处。2.UIWebView和WKWebView都支持H5离线缓存。此功能需要服务器和浏览器本身很好的支持来达到它的稳定性。使用H5离线缓存,不需要客户端增加任何离线缓存相关代码。二、HTML5应用程序缓存和浏览器缓存的区别。(有些)浏览器会主动保存自...原创 2017-02-10 12:06:19 · 5239 阅读 · 0 评论