iOS
cook_apple
iOS开发
381397318@qq.com
展开
-
CoreData 深入理解6 Mapping Model
通常,我们都会尽量使数据模型的变化尽量简单。但有些情况下,不得不进行大的改动,甚至是重新设计数据模型。在这种情况下,之前提过的简单数据迁移已经无法适应了,需要引入Mapping Model这个中间层。这时,又想起之前提过的一句话:There is no problem in computer science that can’t be solved by adding转载 2016-03-09 16:59:41 · 624 阅读 · 0 评论 -
NSFileHandle
---------------1NSFileHandle--------------- 文件读与写的操作,都是相对于内存和硬盘而言的.1.内存是大脑2.硬盘是书本读写也可以认为,是相对于应用程序而言的. -----------------2文件句柄的创建----------------- 打开一个文件,生成一个文件句柄,这个句柄就是这原创 2014-01-06 11:09:21 · 587 阅读 · 0 评论 -
ios监听静音键和音量键事件
判断是否静音:view plaincopyto clipboardprint?- (BOOL)isMuted { CFStringRef route; UInt32 routeSize = sizeof(CFStringRef); OSStatus status = AudioSessionGetPro转载 2014-01-06 11:49:49 · 1584 阅读 · 0 评论 -
iOS DES ECB模式对称加密解密
最近忙于android和iOS的项目,写完了android的DES 的ECB模式加密解密(相关连接:http://blog.csdn.net/vipa1888/article/details/8086037),又回到了Ios上面,因为本人也是最近今年开始研究ios的,所以Ios上面好多东西都不懂,进过了半年的研究,终于吧ios的DES 的ECB模式对称加密解密搞定了,本人遇到的问题很严重的转载 2014-01-06 11:45:50 · 754 阅读 · 0 评论 -
UITableView的性能优化
使用UITableViewController:继承了UITableViewController的优点:1在UITableViewController的内部,系统已经自动创建了一个tableView对象.2并且自动设置以下的代码://设置控制器的viewself.view = tableView;//设置控制器的tableView属性self.tableVi原创 2014-01-06 11:15:44 · 524 阅读 · 0 评论 -
在OC中获取C的数据类型
--------------------------1--使用@encode关键字-------------------- 使用@encode关键字,可以获取C和OC中的数据类型. 返回一个字符串的首字母的地址. 用法:enum workday{ mon,tue,thr,fri};struct aaa{ int a;原创 2014-01-06 12:00:22 · 1284 阅读 · 0 评论 -
ios开发-剪切板
在iOS中,可以使用剪贴板实现应用程序之中以及应用程序之间实现数据的共享。比如你可以从iPhone QQ复制一个url,然后粘贴到safari浏览器中查看这个链接的内容。一、在iOS中下面三个控件,自身就有复制-粘贴的功能:1、UITextView2、UITextField3、UIWebView二、UIKit framework提供了几个类和协议方便我们在自己的应用程序转载 2014-01-06 11:47:34 · 606 阅读 · 0 评论 -
自定义cell
-----------------------------------------------自定义cell__代码---------------- UITableView显示数据的过程1.调用一次tableView:numberOfRowsInSection:方法确定行数2.调用多次tableView:heightForRowAtIndexPath:方法确定每原创 2014-01-06 11:16:40 · 746 阅读 · 0 评论 -
UITableView编辑模式
UITableViewCell内部的子view层级:cell |--contentView |--imageView |--textLabel |--detailTextLabel在给cell添加子控件时:1如果直接添加到cell中,tableView的编辑模式的按钮,将重叠在子控件的上面.2如果把原创 2014-01-06 11:13:20 · 747 阅读 · 0 评论 -
手动排序算法和数组交换算法
手动排序算法和数组交换算法(内存原理)手动排序和数组交换的区别:1这2种算法都不会影响,AB位置之外的所有的数据的位置和索引.2手动排序算法,AB位置和AB之间的,所有的数据的位置和索引,都会转圈圈.3数组交换算法,AB位置的数据会交换,但AB之间的数据的位置和索引,都不会改变.手动排序算法的实现:1先删除数组中A位置的数据.//此时,A位置后的原创 2014-01-06 11:11:59 · 1190 阅读 · 0 评论 -
支付宝为什么可以在ios上架
为什么支付宝内的支付app可以在appstore上存活呢? 很简单,因为apple的规定说的是购买该应用的内容、功能或服务。比如某个游戏,免费的只能玩10关,剩下的部分需要支付才能玩,这个购买的就是该游戏的内容。支付宝上的支付不是用来购买支付宝这个应用的内容、功能或服务的。你不会需要花钱才能用到支付宝上的功能。同理,其他银行、财经类应用也都是不受限制的。转载 2014-01-08 12:54:42 · 936 阅读 · 0 评论 -
不使用ARC的年代
如果不使用ARC,那么在堆内存中所开辟的东西,都是需要使用手工进行释放的,为什么需要手工进行释放呢?就是因为对象在创建的过程中,自动把对象内部的计数器加1,异致垃圾回收器无法把这个对象所占的内存空间释放掉垃圾回收器:1Java中的垃圾回收器是全自动的,只要对象没有被其它变量所引用,垃圾回收器就会在合适的时机,把对象所占内存回收掉2OC中的垃圾回收器是半自动的,需原创 2014-01-08 10:01:20 · 533 阅读 · 0 评论 -
在iOS开发中使用FMDB
前言http://blog.devtang.com/blog/2012/04/22/use-fmdb/SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的SQLite API转载 2014-02-14 14:47:56 · 472 阅读 · 0 评论 -
Core Data 深入理解5 --(版本数据迁移)
Core Data版本迁移基础通常,在使用Core Data的iOS App上,不同版本上的数据模型变更引发的数据迁移都是由Core Data来负责完成的。这种数据迁移模式称为Lightweight Migration(可能对于开发人员来说是lightweight),开发人员只要在添加Persistent Store时设置好对应选项,其它的就交付给Core Data来做了:转载 2016-03-09 16:57:27 · 502 阅读 · 0 评论 -
coreData 深入理解4 --总结 (线程安全与同步--iOS5 前后对比)
目录(?)[+]Core Data是iOS中很重要的一个部分,可以理解为基于SQLite(当然也可以是其他的Storage,如In-memory,只是SQLite比较常见)的一个ORM实现,所以有关系数据库的特性,又不用写SQL。顺便吐一下槽,官方说法是使用Core Data能减少50%-70%的代码量,但相信用过的人应该都心里明白,Core Data使用起来还是比较麻烦的转载 2016-03-09 16:55:14 · 523 阅读 · 0 评论 -
coreData 深入理解3 (iOS5 以前线程安全与同步)
iOS5 以前采用方法:1: 主线程修改了数据库的某一条记录,但是子线程没有发生变化,反过来一样的问题。这种情况一般是发生在app有多个NSManagedObjectContext,两个线程分别对其进行了读写操作。2: 有时候程序会莫名其妙的crash掉,这个有很多原因: a: 有时候是因为两个线程同时读写数据库中的同一条记录。转载 2016-03-09 16:52:44 · 393 阅读 · 0 评论 -
CoreData 深入理解2 (iOS5 以后线程安全与同步)
up vote6down votefavorite9I've seen a few videos / threads that say it's possible to create 'children' MOCs -- MOCs that use other MOCs as their persistant stores. Useful, for ex转载 2016-03-09 16:51:18 · 391 阅读 · 0 评论 -
CoreData 深入理解1
原文:Avoiding Ten Big Mistakes iOS Developers Make with Core Data 感谢会员dingdaojun的校对。 Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据。对很多开发者来说,Core Data比较容易入手,但很难精通,如果没有正确的学习方法,你将很难真正理解它,更不用说精转载 2016-03-09 16:49:40 · 363 阅读 · 0 评论 -
CoreData多线程安全
CoreData中的NSManagedObjectContext在多线程中不安全,如果想要多线程访问CoreData的话,最好的方法是一个线程一个NSManagedObjectContext,,每个NSManagedObjectContext对象实例都可以使用同一个NSPersistentStoreCoordinator实例,这个实例可以很安全的顺序访问永久存储,这是因为NSManage转载 2016-03-09 16:47:43 · 381 阅读 · 0 评论 -
CoreData 概览
一、技术概览1. Core Data 功能初窥 对于处理诸如对象生命周期管理、对象图管理等日常任务,Core Data框架提供了广泛且自动化的解决方案。它有以下特性。 (注:对象图-Object graph的解释:在面向对象编程中,对象之间有各种关系,例如对象直接引用另外的对象,或是通过引用链间接的引用其他对象,这些关系组成了网状的结构。我们把这些对象(和它们之间的联系)成为对象图转载 2016-03-09 16:45:33 · 318 阅读 · 0 评论 -
XCode5无法设置Deployment Target的解决办法
今天使用XCode5创建新项目的时候发现无法修改Deployment Target,只能选择iOS7,谷歌了一下找到了答案,在这里分享给大家:)这是由于XCode5默认会选择在64位的环境下运行,在Build Settings中修改Architectures为Standard architectures(armv7, armv7s),回到General中即可修改Deployment Tar转载 2014-02-19 15:56:00 · 773 阅读 · 0 评论 -
iphone开发之UITableView 札记
代码创建控件UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectMake:(0,0,320,480) style:UITableViewStylePlain];myTableView.deleg转载 2014-02-14 15:11:35 · 554 阅读 · 0 评论 -
NSFileManager
-------------------1文件管理器的创建------------------- NSFileManager类的 +defaultManager方法.返回一个NSFileManager的单例 用法://创建一个NSFileManager的单例NSFileManager *fileManager = [NSFileManager defa原创 2014-01-06 11:09:10 · 657 阅读 · 0 评论 -
OC中的谓词
谓语:就是英语中的am,is,are,用来做判断用的NSPredicate类中的方法:+ (NSPredicate*)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))block; + (NSPredicate *)predicateWithFormat:(NSStr原创 2014-01-06 12:02:18 · 937 阅读 · 0 评论 -
经典死循环
在用到UIViewController对象的view时,如果UIViewController对象的_view成员变量是空的,则会调用UIViewController对象的-loadView方法初始化一个. 重写UIViewController对象的-loadView方法.-(void)loadView{ //这是一个死循环 self.view =原创 2014-01-06 12:04:55 · 710 阅读 · 0 评论 -
UIView的显示原理
UIView的显示过程:1当UIView需要显示时,它内部的层会准备好一个CGContextRef(图形上下文),然后调用delegate(这里就是UIView)的drawLayer:inContext:方法,并且传入已经准备好的CGContextRef对象。而UIView在drawLayer:inContext:方法中又会调用自己的drawRect:方法2平时在drawR原创 2014-01-05 11:52:25 · 1309 阅读 · 0 评论 -
自定义NSOperation__最常用的方式
默认情况下,NSOperation并不具备封装操作的能力,必须使用它的子类,使用NSOperation子类的方式有3种:1NSInvocationOperation2NSBlockOperation3自定义子类继承自NSOperation,实现内部相应的方法自定义NSOperation:1需要重写main方法2并把我们需要执行的操作,封装到main方法中.原创 2014-01-05 12:00:49 · 623 阅读 · 0 评论 -
用 git config 配置用户信息
用git config –list可以查看当前的git配置列表如果已经配置了,则会看到user.name 和 user.email的配置信息如果没有,一般情况下在git提交时会使用机器名,诸如:unknown dev@xxx-PC.(none) 等类型的Author信息,肯定不方便了。建议都配置明确的user.name 和 user.email信息。可以通过下面的命令进行配原创 2014-01-04 14:07:10 · 1223 阅读 · 0 评论 -
ios使用自带git respository管理项目
在创建工程时,会有这样一个选项,当我们勾选上后,Xcode就会为我们的工程创建一个隐藏的git库,每当代码有更改时,提交更新后就会添加到git库中,类似于我们的svn。好了,现在开始体验!项目创建好后,git库会为我们默认initall添加一个基础版本。具体查看办法:Xcode右上角Organizer按钮---Repositories标签页,在左转载 2014-01-04 13:45:50 · 524 阅读 · 0 评论 -
iPhone / iPod Touch 文件传输解决方案 – 开源框架:Cocoa Web Resource Project
到目前为止,也就是iPhone SDK 2.2 ,苹果仍然没有为开发者提供一个文件传输的解决方案。如果一个应用需要为用户提供往iPhone上传文件的功能,大抵会采用下面几种方法之一:通过一个链接从网上下载。提供一个客户端,通过自己的协议上传。支持FTP传输协议。在iPhone上启动一个http服务,通过浏览器上传。比上一个更进一步,在http上支持WebDAV,通过改协议上传。上面转载 2014-01-03 14:14:09 · 670 阅读 · 0 评论 -
动态链接库与静态链接库的区别
静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,转载 2014-01-03 14:18:21 · 464 阅读 · 0 评论 -
UIView+block动画和CALayer动画的区别
官方推荐使用UIView中的block动画,最简单.UIView动画和CALayer动画:1实际开发中较多用UIKit动画,用CALayer开发动画太麻烦.2CALayer动画结束后有反弹,UIView动画结束后没有反弹.3CALayer动画结束后没有真正修改控件中的属性值,UIView动画结束后已经修改了控件中的属性值.4使用CALayer的deleg原创 2014-01-05 11:54:34 · 1156 阅读 · 0 评论 -
Core Animation简介
Core Animation的执行过程,都是在后台操作的,不会阻塞主线程.Core Animation直接作用在CALayer上的,并非UIView.Core Animation可以解决,根图层没有隐式动画的问题.CAAnimation |--CAAnimationGroup |--CATransition原创 2014-01-05 11:55:34 · 532 阅读 · 0 评论 -
NSURLConnection对象
NSURLConnection对象:这个对象,可以用于本地连接和远程连接,远程连接又包括Http连接和Ftp连接,都可以用这个对象进行连接。NSURLConnection对象需要一个NSMutableURLRequest对象,NSMutableURLRequest对象又需要一个NSURL对象,NSURL对象又需要一个NSString连接字符串对象NSURLReq原创 2014-01-05 11:56:29 · 549 阅读 · 0 评论 -
iOS网络编程实践--NSStream实现TCP Socket iPhone客户端
[self initNetworkCommunication]; } 它们都调用initNetworkCommunication方法,并设置操作标识flag,如果flag为0发送数据,flag为1接收数据。流的状态的变化触发很多事件,并回调NSStreamDelegate协议中定义的方法stream:handleEvent:,其代码如下: -(void)stream:(转载 2014-01-06 11:41:22 · 559 阅读 · 0 评论 -
UITableView样式
自定义表格中的分隔线:通过UITableView的separatorStyle和separatorColor可以设置分隔线的样式和颜色,但系统自带的分隔线不好看.解决方案:1设置表格自带的分隔线样式:tableView.separatorStyle = UITableViewCellSeparatorStyle;2然后把自定义的分隔线,添加到cell中去,不在表格中表达原创 2014-01-06 11:13:07 · 571 阅读 · 0 评论 -
应用沙盒的路径获取
应用沙盒结构分析:/根目录:1代表应用程序的根目录.2使用C全局函数获取NSHomeDirectory(void);/tmp目录:1保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录2使用C全局函数获取NSTempor原创 2014-01-06 11:11:10 · 696 阅读 · 0 评论 -
文件IO概述
--------------|--文件IO概述-------------- 文件操作:1.在程序中调用shell命令行 system( )函数2.对文件本身的操作 NSFileManager3.对文件内容的操作 NSFileHandle ---------------------|--使用命令行操作文件-----------原创 2014-01-06 11:08:04 · 510 阅读 · 0 评论 -
NSOperationQueue队列的特点
//可以在队列中直接执行操作,而不依赖于NSOperation对象- (void)addOperationWithBlock:(void (^)(void))block NS_AVAILABLE(10_6, 4_0);操作只要被添加到队列:1就会立即被执行,并且会新开一个线程2不需要调用操作的start方法3把操作添加到队列后,会自动对NSOperation做一原创 2014-01-06 11:07:07 · 675 阅读 · 0 评论 -
不以跨线程访问自动释放池
使用自定义的NSOperation,一般在重写main方法时,都需要在方法的内部,手动的创建一个自动释放池.原理:1很多使用autorelease的代码,都需要用到这个自动释放池.2自动释放池这个东西,本身不能跨线程访问,所以只好手工创建了.注意:主线程的自动释放池,默认只允许主线程访问.不能对NSOperation对象调用autorel原创 2014-01-05 12:01:38 · 508 阅读 · 0 评论