ios开发
文章平均质量分 72
wsmrcool
思考着前行
展开
-
关于多线程的runloop和auroreleasepool
我们知道,每个线程都会有一个对应的runloop,对于主线程,默认是自动开启runloop的,而对于自己创建的此线程,默认是不会开启runloop的,而只有在开启了runloop后,系统才会自动创建一个autoreleasepool,并在runloop结束时释放掉这个,所以如果我们的次线程没有开启runloop的话并且还要autoreleasepool管理内存的话,需要手动创建一个autorele原创 2012-08-29 18:02:08 · 406 阅读 · 0 评论 -
ASIHTTPRequest类库简介和使用说明
官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码,以及获取到相关的资料。使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在Mac OS X系统和iO转载 2012-09-25 14:06:03 · 327 阅读 · 0 评论 -
AsyncSocket实现tcp/ip的通讯协议
客户端: 1 添加CFNetwork.framework到工程中 2 拖动AsyncSocket.h 和 AsyncSocket.m 到工程 3 然后实现方法 SocketDemoViewController.h #import #import "AsyncSocket.h" #define SRV_CONNECTED 0 #define SRV转载 2012-09-25 14:37:35 · 701 阅读 · 0 评论 -
ASIHTTPRequest 详解
ASIHTTPRequest 是一款极其强劲的 HTTP 访问开源项目。让简单的 API 完成复杂的功能,如:异步请求,队列请求,GZIP 压缩,缓存,断点续传,进度跟踪,上传文件,HTTP 认证。在新的版本中,还加入了 Objective-C 闭包 Block 的支持,让我们的代码加轻简灵活。下面就举例说明它的 API 用法。发起一个同步请求同步意为着线程阻塞,在主线程中转载 2012-09-25 14:10:32 · 259 阅读 · 0 评论 -
AsyncSocket介绍和示例
转自:http://www.iteye.com/topic/993392假如你也是一个java程序员,而你又不是很懂Socket。下面我的这篇文章也许能帮助你一些。http://xiva.iteye.com/blog/993336首先我们写好上面文章中的server端。下面我们可以访问一下下面的地址:http://code.google.com/p/co转载 2012-09-25 13:45:30 · 532 阅读 · 0 评论 -
详解iOS生命周期
iOS应用程序的生命周期相比 Android 应用程序的生命周期来说,没那么简明易懂,但是也并不复杂。iOS应用程序的生命周期又根据系统是否支持多线程分为两种:不支持多线程的iOS4之前的系统以及支持多线程的iOS4及其之后的系统。iOS4 之前系统,app的生命周期图如下所示:感谢 oliver@drobnik.com 提供如错详细的图,并以cc许可发布。从图中我们可转载 2012-10-25 16:14:41 · 363 阅读 · 0 评论 -
UIApplicationDelegate 代理函数调用的时间(应用程序生命周期)
UIApplicationDelegate 包含下面几个函数监控应用程序状态的改变:– applicationDidBecomeActive:– applicationWillResignActive:– applicationDidEnterBackground:– applicationWillEnterForeground:– applicationWillTermina转载 2012-10-25 16:29:12 · 574 阅读 · 0 评论 -
GCD介绍(转)
GCD介绍(一): 基本概念和Dispatch QueueGCD提供很多超越传统多线程编程的优势:易用: GCD比之thread跟简单易用。由于GCD基于work unit而非像thread那样基于运算,所以GCD可以控制诸如等待任务结束、监视文件描述符、周期执行代码以及工作挂起等任务。基于block的血统导致它能极为简单得在不同代码作用域之间传递上下文。效率: GCD被实现得转载 2012-11-06 18:49:06 · 631 阅读 · 0 评论 -
CABasicAnimation animationWithKeyPath 一些规定的值(Layer层动画)
CABasicAnimation animationWithKeyPath TypesWhen using the ‘CABasicAnimation’ from the QuartzCore Framework in Objective-C, you have to specify an animationWithKeyPath. This is a long string and is n转载 2012-11-29 16:13:13 · 381 阅读 · 0 评论 -
[译]ios开发之处理流错误
译自:Handling Stream Errors通常情况下,特别是与sockets相关联时,streams会遇到错误从而不能进一步处理stream data。一般情况下,错误提示了在流的一端缺失了东西,比如说远程主机的crash,正在使用的文件被删除等等。在此情况下,客户端能够做的就是将这些错误提示给用户,尽管一个stream object在上报错误之后,在它关闭之前仍然可以查询它的转载 2012-12-06 15:55:28 · 1468 阅读 · 0 评论 -
[译]ios开发之从输入流里读入数据
原文:Reading From Input Streamsios cocoa 编程,从NSInputStream中读入数据包括几个步骤:1.从数据源创建和初始化一个NSInputStream实例2.将输入流对象配置到一个run loop,open the stream3. 通过流对象的delegate函数处理事件4. 当所有数据读完,进行流对象的内存处理转载 2012-12-06 15:50:37 · 663 阅读 · 0 评论 -
[译]ios开发之streams概览
译自:Cocoa Streams流是位数据通过通信路径的连续传送序列。它是单向的,从一个应用程序的角度,流可以是输入流(读操作流)或者输出流(写操作流),除了基于文件的流之外,其余的都是non-seekable的。一旦流数据被提供或者被使用,数据就不能够从流中获取到。Cocoa包括三种与流有关的类:NSStream,NSInputStream,NSOutputStrea转载 2012-12-06 14:38:13 · 479 阅读 · 0 评论 -
[译] ios开发之向输出流写数据
译自:Writing To Output Streams使用NSOutputStream实例需要以下几个步骤:1,使用存储写入数据的存储库创建和初始化一个NSOutputSteam实例,并且设置它的delegate。2,将这个流对象布置在一个runloop上并且open the stream。3,处理流对象向其delegate发送的事件消息。4,如果流对转载 2012-12-06 15:53:23 · 528 阅读 · 0 评论 -
NSCondition的用法
使用NSCondition,实现多线程的同步,即,可实现生产者消费者问题。基本思路是,首先要创建公用的NSCondition实例。然后:消费者取得锁,取产品,如果没有,则wait,这时会释放锁,直到有线程唤醒它去消费产品;生产者制造产品,首先也是要取得锁,然后生产,再发signal,这样可唤醒wait的消费者。- (IBAction)conditionTest:转载 2012-12-12 18:27:14 · 618 阅读 · 0 评论 -
Sqlite数据库多线程并发问题
(7) 多个应用程序或者同一个应用程序的多个例程能同时存取同一个数据库文件吗?多进程可以同时打开同一个数据库,也可以同时 SELECT 。但只有一个进程可以立即改数据库。SQLite使用读/写锁定来控制数据库访问。(Win95/98/ME 操作系统缺乏读/写锁定支持,在低于 2.7.0 的版本中,这意味着在 windows 下在同一时间内只能有一个进程读数据库。在版本 2.7.0转载 2012-12-12 19:22:18 · 14233 阅读 · 0 评论 -
IOS 四种保存数据的方式
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题。将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好。下面介绍一下数据保存的方式:1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法。前一个方法告转载 2012-12-26 23:06:10 · 476 阅读 · 0 评论 -
UITabBarController使用详解
UITabBarController是IOS中很常用的一个viewController,例如系统的闹钟程序,ipod程序等。UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中。 首先我们看一下它的view层级图:一、手动创建UITabBarController转载 2013-01-23 16:55:17 · 443 阅读 · 0 评论 -
Objective-c方法调用流程
Objective-c是一门动态语言,动态两个字主要就体现在我们调用方法的时候,运行时回动态的查找方法,然后调用相应的函数地址。运行时是整个Objective-c程序的基石,有了它我们的程序才能正常运行起来。 NSObject是Cocoa中绝大部分类的基类,它主要是提供了序列话,拷贝对象,以及支持运行时动态识别的框架。 在Objective-c中每一个类对象最开始的位置都会有一转载 2013-01-23 17:00:22 · 546 阅读 · 0 评论 -
SQLite在多线程环境下的应用
文一SQLite的FAQ里面已经专门说明,先贴出来。供以后像我目前的入门者学习。(7) 多个应用程序或者同一个应用程序的多个例程能同时存取同一个数据库文件吗?多进程可以同时打开同一个数据库,也可以同时 SELECT 。但只有一个进程可以立即改数据库。SQLite使用读/写锁定来控制数据库访问。(Win95/98/ME 操作系统缺乏读/写锁定支持,在低于 2.7.0 的版本中转载 2012-10-12 16:29:34 · 463 阅读 · 0 评论 -
CoreData介绍
1. CoreData数据库简介:CoreData 是mac平台和ios平台都有的数据库操作框架(本身不是数据库),一种类似关系数据库的东西,ios平台的coredata的数据库可以配置为sqlite,xml数据库等。CoreData提供图形界面创建model,并且可以直接生成object-c类CoreData使用NSPredlicate来代替sql语句查询数据库,直接更改数据模型属性转载 2012-10-11 16:31:58 · 544 阅读 · 0 评论 -
viewcontroller的成员变量和属性在viewdidunload中的不同处理方式
对于成员变量实例,在ViewDidUnload()中需要先release,然后再将其置为nil,即:[xxx release]; xxx= nil;而对于属性变量(即只用@property声明的变量),在ViewDidUnload()中只需要将属性值置为nil即可,不需要自己再release,因为系统已经release这个变量了。原创 2012-08-28 16:51:28 · 397 阅读 · 0 评论 -
iOS ARC也会有内存泄露
iOS提供了ARC功能,很大程度上简化了内存管理的代码。但使用ARC并不代表了不会发生内存泄露,使用不当照样会发生内存泄露。下面列举两种内存泄露的情况。1,循环参照A有个属性参照B,B有个属性参照A,如果都是strong参照的话,两个对象都无法释放。这种问题常发生于把delegate声明为strong属性了。例,@interface SampleViewControll转载 2012-09-27 14:56:57 · 670 阅读 · 0 评论 -
NSOperationQueue和NSOperation的使用方法
首先是建立NSOperationQueue和NSOperations。NSOperationQueue会建立一个线程管理器,每个加入到线程operation会有序的执行。NSOperationQueue *queue = [NSOperationQueue new]; NSInvocationOperation *operation = [[NSInvocationOperation al转载 2012-09-28 16:46:28 · 451 阅读 · 0 评论 -
iOS的runtime
1. 什么是runtime运行时刻是指一个程序在运行(或者在被执行)的状态。也就是说,当你打开一个程序使它在电脑上运行的时候,那个程序就是处于运行时刻。在一些编程语言中,把某些可以重用的程序或者实例打包或者重建成为"运行库"。这些实例可以在它们运行的时候被连接或者被任何程序调用。程序员有时候会在什么东西应该在编译的时候加载进来以及什么东西该在运行的时候使用之间做出抉择,前者有时候成为编译时转载 2012-09-28 16:53:25 · 500 阅读 · 0 评论 -
不错的多线程NSThread讲解
多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。一、线程创建与启动 线程创建主要有二种方式:- (id)init; // designated initializer- (i转载 2012-09-28 17:04:12 · 381 阅读 · 0 评论 -
NSNotificationCenter 的使用
1,定义一个方法-(IBACtion)shuchu{ }2,对象注册,并附带信息[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(shuchu) name:@"Method" object:nil]3,发送通知信息[[NSNotificationCenter defaultCenter转载 2012-09-28 18:58:09 · 557 阅读 · 0 评论 -
【Objective-C】iOS开发中常见的语句@synthesize obj=_obj的意义详解
我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关乎我们理解Objective-C中对类、类的属性、类的存取器、类的局部变量的统一理解。在32位系统中,如果类的 @interface 部分没有进行 ivar 声明,但有 @p转载 2012-09-13 16:02:23 · 601 阅读 · 0 评论 -
ios中的MVC模式
转载几篇关于ios中的MVC讲解的文章:1.浅谈iOS中的MVC设计:http://www.devdiv.com/home.php?mod=space&uid=6998&do=blog&id=96072.IOS学习之——MVC模式:http://blog.sina.com.cn/s/blog_4a3dcc3901010062.html3.iOS学习笔记之MVC架构:http转载 2012-09-14 14:17:48 · 249 阅读 · 0 评论 -
打包应用程序
过程介绍的很详细,具体内容请查看:iOS开发27:打包应用程序http://my.oschina.net/plumsoft/blog/77514PS:博主原创文章的例子写得很详细,推荐ios新手学习。博客链接:http://my.oschina.net/plumsoft转载 2012-09-14 15:34:51 · 269 阅读 · 0 评论 -
强制退出Mac程序的六种方法
用电脑时间长了,难免会遇到程序卡住,风火轮狂转不停,没有任何相应等情况。可能是由于程序冲突、缓存不足或者一些bug等情况导致,这个时候我们就需要强制退出这个程序了,下面有六种在Mac系统中强制退出程序的方法,大家至少应该记住一两个。1、使用键盘快捷键强制退出处于活跃状态的Mac程序快捷键:Command+Option+Shift+Esc这样按住一两秒钟,就可以强制退出当前程序了,算是最方便转载 2012-09-18 15:53:05 · 397 阅读 · 0 评论 -
NSNotificationCenter 的使用详解
直接上链接:http://unmi.cc/nsnotificationcenter-usage转载 2012-09-18 16:37:26 · 269 阅读 · 0 评论 -
Objective-C 的 self 和 super 详解
在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”super”,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:@interface Person:NSObject {NSString* name;}- (void) setName:(NSSt转载 2012-09-18 16:52:24 · 705 阅读 · 0 评论 -
Objective-C 的方法原型及重载和覆盖
毫无疑问,Objective-C 也是一种面向对象语言,那么面向对象有三个基本特征(封装、继承、多态)。重载似乎与这三大特征没多大关系,方法覆盖才预示着多态。但重载还是与覆盖有一定的关联,它们都要求你能识别出方法的原型,这就引出方法原型与重载的关系。Objective-C 与最常见的语言如,C++、C#、Java 在这方面是不同的,我们知道,Java、C++ 和 C# 识别方法原型是依据于转载 2012-09-18 17:17:33 · 1048 阅读 · 0 评论 -
ios开发:Objective-C的singleton模式
本文主要介绍了iOS开发模式中的singleton模式,如果你准备写一个类,希望保证只有一个实例存在,同时可以得到这个特定实例提供服务的入口,那么可以使用单态设计模式。单态模式在Java、C++中很常用,在Cocoa里,也可以实现。但是,Objective-C的单例模式绝对和你所想象不一样,他的写法和你所见过的所有语言的写法都不一样。官方建议,由于自己设计单态模式存在一定风险,主要是考虑到可能转载 2012-09-18 15:22:40 · 559 阅读 · 0 评论 -
多线程相关的代码
Obj-C 中与多线程相关的类有 NSOperation、NSOperationQueue 和 NSThread。NSOperation 类似与 Java 的 Runnable 接口,只是要实现的 NSOperation 的方法是 -(void) main; 当把 NSOperation 加到 NSOperationQueue 后,队列就会为每个 NSOperation 实例分配一个 NSThre转载 2012-09-18 16:49:32 · 321 阅读 · 0 评论 -
UIView官方文档翻译(来源于网络)
原文就不贴了,直接看原文链接吧:http://unmi.cc/knowledges-on-uiview特别标记下: frame, bounds和center属性之间的关系视图对象使用frame, bounds和center属性来跟踪它的尺寸和位置:frame属性包含了frame矩形,指定了在父视图坐标系统中该视图的尺寸和位置。center属性包含了在父视转载 2012-09-18 16:33:59 · 624 阅读 · 0 评论 -
ios数据存储小结
首选项设置存储NSUserDefaults 以及通过它控制的SettingBundle NSUserDefaults 用来保存一些设置,他会自动写到何时的位置。NSUbiquitousKeyValueStore 多平台同步设置,限制是大小64k,开启entitlement,唯一Apple ID(还要考虑无法连接到iCloud网络时的情形)文件存储一.目录描述/AppName.a转载 2012-09-19 16:11:08 · 567 阅读 · 0 评论 -
ios6新特性
1、地图 iOS6抛弃了一直用的google map,而使用了自家的地图服务。相应地,MapKit框架也自然变成和Apple自家的地图服务绑定了。随之而来的好处是因为都是自家的内容,所以整合和开放会更进一步,第三方app现在有机会和地图应用进行交互了。也就是说,不使用自身搭载地图信息的app现在可以打开地图应用,并且显示一些感兴趣的路线和地点,这对于路线规划和记录类的应用来说这是个好转载 2013-03-26 18:53:31 · 555 阅读 · 0 评论