- 博客(26)
- 资源 (2)
- 收藏
- 关注
转载 手把手教你ARC——iOS/Mac开发ARC入门和使用
本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论。请不要将本文的部分或全部内容用于商用,谢谢合作。欢迎转载本文,但是转载请注明本文出处:http://www.onevcat.com/2012/06/arc-hand-by-hand/本文适合人群:对iOS开发有一定基础,熟悉iOS开发中内存管理的Reference Counting机
2014-08-28 12:05:50 422
转载 iOS上的socket通信
客户端: 导入头文件: #import #import #import #import 1. 创建连接 CFSocketContext sockContext = {0, // 结构体的版本,必须为0 self, // 一个任意指针的数据,可以用在创建时CFSocket对象相关联。这个指针被传递给所有的上下文中定义的回调。 NULL, //
2014-08-27 17:05:29 409
转载 iOS开发之CocoaAsyncSocket学习
CocoaAsyncSocket支持tcp和udp。其中:AsyncSocket类是支持TCP的AsyncUdpSocket是支持UDP的AsyncSocket是封装了CFSocket和CFSteam的TCP/IP socket网络库。它提供了异步操作,本地cocoa类的基于delegate的完整支持。主要有以下特性:队列的非阻塞的读和写,而且可选超时。你可以调用它读取和写
2014-08-27 17:03:04 359
转载 NSSet类型 以及与NSArray区别
NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray,NSDictionary(都是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的; NSSet和我们常用NSArry区别是:在搜索一个一个元素
2014-08-26 22:05:07 402
转载 iOS 数据保存几种方式总结
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题。将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好。下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法。前一个方法告诉系
2014-08-26 21:18:05 446
转载 objective-c中是如何实现线程同步的?
多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。 一、线程创建与启动 线程创建主要有二种方式: 当然,还有一种比较特殊,就是使用所谓的convenient metho
2014-08-26 20:50:52 559
转载 关于iphone开发中的@property和@synthesize的一些见解
我的体会是@property和@synthesize有以下两个作用:1.作用一@property是在头文件.h中声明一个变量的setter和getter方法。@synthesize是在m文件中定义setter和getter方法的实现。2.作用二@property,在声明变量方法的时候可以附加定义该变量的属性。如retain,assign,readonly
2014-08-26 20:33:38 380
转载 文件操作(NSFileManager)
iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。Library包含Caches、Preferences目录。 上面的完
2014-08-25 18:50:48 423
转载 数据库操作(使用FMDB)
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,就出现了一系列将SQLite API进行封装的库,例如FMDB、PlausibleDatabase、sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁、易用的封装库,这一篇文章简单介绍下FMDB的使用。在FMDB下载文件
2014-08-25 18:49:58 419
转载 数据库操作(SQLite)
SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,目前应用于Android、iOS、Windows Phone等智能手机。iOS 使用时SQLite,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h
2014-08-25 18:44:07 407
转载 xml数据解析
在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。这篇文章使用了NSXMLParser。解析 XML 通常有两种方式,DOM 和 SAX:DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结
2014-08-25 18:38:19 451
转载 iOS网络通信http之NSURLConnection
移动互联网时代,网络通信已是手机终端必不可少的功能。我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互。这一篇提供了使用NSURLConnection实现http通信的方式。 NSURLConnection提供了异步请求、同步请求两种通信方式。1、异步请求 iOS5.0 SDK NSURLConnection类新增的sendAsynch
2014-08-25 18:34:56 477
转载 什么是工厂方法?
什么是工厂方法? GOF是这样描述工厂模式的:“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.”
2014-08-25 16:39:57 709
转载 iOS 工厂模式
工厂模式我的理解是:他就是为了创建对象的创建对象的时候,我们一般是alloc一个对象,如果需要创建100个这样的对象,如果是在一个for循环中还好说,直接一句alloc就行了,但是事实并不那么如意,我们可能会在不同的地方去创建这个对象,那么我们可能需要写100句alloc 了,但是如果我们在创建对象的时候,需要在这些对象创建完之后,为它的一个属性添加一个固定的值,比方说都是某某学校的学生,
2014-08-25 16:20:42 393
转载 GCD 深入理解(二)
欢迎来到GCD深入理解系列教程的第二部分(也是最后一部分)。 在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD 如何工作的知识。通过在初始化时利用 dispatch_once,你创建了一个线程安全的 PhotoManager 单例,而且你通过使用 dispatch_barrier_async 和 dispatch_sync 的组合使得对 Photos 数组的
2014-08-23 12:55:43 426
转载 GCD 深入理解(一)
虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Objective-C 的平滑世界。我们将分两个部分的教程来深入学习 GCD 。 在这两部分的系列中,第一个部分的将解释 GCD 是做什么的,并从许多基本的 GCD 函数中找出几个来展示。在第二部分,你将学到几个 GCD
2014-08-22 22:17:23 508
转载 Some Boring Warning
今天打开一个项目的时候看到了的几个警告:“No previous prototype for function”缺少函数原型,网上查了些资料,有两个解决方案:1.在Build Settings里找到“Missing Function Prototypes”,默认设置为YES,将它设为NO,这样做Xcode就会忽略这个警告,不再显示。关于Xcode为什么会有这么个警告,stack
2014-08-22 08:59:02 474
转载 iOS应用开发:什么是ARC?
ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过
2014-08-19 17:08:07 403
转载 autorelease的对象到底会在什么时候被回收?
iOS的运行时是由一个一个runloop组成的,每个runloop都会执行下图的一些步骤:可以看到,每个runloop中都创建一个Autorelease Pool,并在runloop的末尾进行释放,所以,一般情况下,每个接受autorelease消息的对象,都会在下个runloop开始前被释放。也就是说,在一段同步的代码中执行过程中,生成的对象接受autorelease消息后,一般是不
2014-08-19 15:56:03 690
转载 autorelease探究
有时候我们需要延迟一个对象的引用计数减一操作,比如:[cpp] view plaincopy+ (NSArray *)array { return [[NSArray alloc] init] autorelease]; } 由于方法名并不以alloc, new, copy, mutableCo
2014-08-19 15:49:27 420
转载 objective-c 内存储器管理之 "autorelease"的一个疑问
objective-c 内存储器管理之 "autorelease"的一个疑问objective-c 内存管理之 "autorelease"的一个疑问 autorelease的用法我了解,但是我一直有一个疑问: 比如说项目中我没有加其他的 NSAutoreleasePool ,也就是说项目中只有 主线程中的那个 NSAutoreleasePool.
2014-08-19 14:54:16 457
转载 NSTimer你真的会用了吗
NSTimer你真的会用了吗 看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗? 我想说你知道NSTimer会retain你添加调用方法的对象吗?你知道NSTimer是要加到runloop中才会起作用吗?你知道NSTimer会并不是准确的按照你指定的时间触发的吗?你知道NSTimer就算添加到runloop了也不一定会按照你想
2014-08-15 15:22:45 371
转载 NSURLCache内存缓存
在IOS应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在IOS设备中加一个缓存的机制。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。下面将介绍如何在IOS设备中进行缓存。 内存缓存我们可以使用sdk中的NSURLCache类。NSURL
2014-08-14 17:02:17 416
转载 KVC 与 KVO 理解
KVC 与 KVO 理解KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解。Key-Value Coding (KVC)KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。KVO 就是基于 KVC 实现的关键
2014-08-14 11:01:25 428
转载 ASIHTTPRequest足够了吗?
ASIHTTPRequest足够了吗?2 大家都知道ASIHTTPRequest系列的类很好用,功能很强大。但也像NSURLConnection一样,一个网络请求就需要实例化一个对象,而且无法避免重复请求的问题。 我个人不习惯用ASIHTTPRequest,因为它功能太强大了,函数太多了,而我们平时的项目仅仅是处理基于HTTP协议的网络交互,用ASIH
2014-08-13 16:26:26 392
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人