IOS
andy_jiangbin
这个作者很懒,什么都没留下…
展开
-
iOS 组件化实践思考
组件化的应用背景和优势在此不再赘述,下面我们将从实践的角度,讨论一下如何应用组件化的思想,下面将以我自己的理解逐步展开,抛砖引玉。哪些内容需要组件化在我的理解中,一个项目可以拆分为以下几种组件: 基础组件; 功能组件; 业务组件; 下面依次来解释几种组件的定义和规则。基础组件基本配置 常量; 宏定义; 分类 各种系统类的扩展;...转载 2019-10-30 21:04:06 · 255 阅读 · 0 评论 -
Objective-C中的SEL .
SEL在Objective-C中,SEL是选择器(selector)的一个类型。选择器就是指向方法的一个指针,读者可以简单理解为程序运行到这里就会执行指定的方法,可以这样定义一个选择器:SEL action = [button action]; 我们这样使用一个选择器,下面的选择器都叫做action:[Foo action] [Bar action] 在Target-Acti转载 2013-07-19 15:37:09 · 417 阅读 · 0 评论 -
如何理解 File's Owner 与 First Responder .
*** xib 文件是什么的缩写? 作用是什么? ***.xib 文件存储 Interface Builder 布局。 NIB 和 XIB 都是 Interface Builder 的图形界面设计文档。引用《Cocoa Programming for Mac OSX》一书的说法,Interface Builder 把窗口、菜单栏以及窗口上的各种控件的对象都“冻结”在了一个 NIB文档里转载 2013-07-19 15:30:17 · 433 阅读 · 0 评论 -
ASIHttpRequest 类库的使用说明
ASIHTTPRequest类库简介和使用说明官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码,以及获取到相关的资料。使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objectiv转载 2013-07-23 14:15:23 · 457 阅读 · 0 评论 -
Mac 中显示资源库(Library)文件夹目录的几种方法
Mac 中显示资源库(Library)文件夹目录的几种方法Mac中Library目录在10.6.7系统之后默认隐藏的,要想找到此文件夹有如下几种方法:1. 用命令可以使其显示:在终端中执行命令:chflags nohidden ~/Library可显示资源库文件夹如想隐藏,可以在终端中执行命令:chflags hidden ~转载 2013-07-23 21:27:27 · 848 阅读 · 0 评论 -
ASIHTTPRequest和libxml结合,实现边请求边解析
ASIHTTPRequests 是非常强大的 http 异步请求开源框架,libxml 是非常老牌的 C 语言xml函数库。在 http + xml 文件的 javaEE-iPhone 应用中,如何把二者结合起来,实现在异步请求数据的同时,进行xml的同步解析呢?这涉及到 3 方面的关键知识:¥ ASIHTTPRequest这部分的内容可以参考作者另一篇博文《ASIHTTPReque转载 2013-07-25 14:21:08 · 578 阅读 · 0 评论 -
ASIHTTPRequest系列(四):Cookies
六、使用 CookiesCookies 是重要的服务器状态保持策略。Web 服务器常使用 Cookies 技术来实现用户免登录功能和存储用户状态信息。ASIHTTPRequest 支持客户端 Cookies 的存取。1、服务器端Session 是服务器端技术,虽然 Cookies 是保存在客户端的。因此我们需要一个服务器端环境。打开 Eclipse,新建 Web 工程,随便写几个简单的转载 2013-07-25 14:08:48 · 455 阅读 · 0 评论 -
ASIHTTPRequest系列(二):文件下载
四、下载1、简单下载打开IB,拖入一个Progress View,在源文件中声明为IBOutlet,然后进行连接。-( IBAction )goURL{NSString * path=[ NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory , NSUserDomainMask ,YES ) objectAtIndex转载 2013-07-25 13:53:22 · 517 阅读 · 0 评论 -
ASIHTTPRequest系列(一):同步和异步请求
ASIHTTPRequest项目地址: http://github.com/pokeb/asi-http-request/tree ,关于ASIHTTPRequest到底是什么,你可以在项目首页看到。它提供如下功能:提交数据到web服务器或者从web服务器获得数据;下载数据到内存或磁盘;采用html input相同的机制上传文件;断点续传;简单存取HTTP头;上传/下载转载 2013-07-25 14:01:39 · 458 阅读 · 0 评论 -
ASIHTTPRequest系列(三):文件上传
五、文件上传1、服务端文件上传需要服务端的配合。我们可在本机搭建tomcat测试环境。关于tomcat在Mac OSX下的安装配置,参考作者另一博文《安装Tomcat到Mac OSX》。打开Eclipse,新建web工程。在其中新建一个Servlet UploadServlet:import java.io.*;import java.util.*; import ja转载 2013-07-25 14:06:02 · 752 阅读 · 0 评论 -
ios利用Reachability确认网络环境3G/WIFI
iPhone开发技巧之网络篇(4)--- 确认网络环境 开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。在你的程序中使用 Reachability 只须将该例程中的 Reachability.h 和 Reachability转载 2013-07-25 10:15:24 · 714 阅读 · 0 评论 -
块编程指南
——译自Apple Reference Library《Blocks Programming Topic》简介块对象是C语言的句法和运行时特性。它类似于标准C函数,但可以将代码、变量绑定到堆(heap)、栈(stack)。一个块还维护了一系列的状态,这些状态或数据影响着执行的结果。可以把块组成函数表达式,用于传递给API,或者使用在多线程里。最有用的是回调,因为块在回调时能把代码和数据转载 2013-07-25 15:13:15 · 351 阅读 · 0 评论 -
IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
一、创建网络请求队列 首先,创建网络请求队列,如下: ASINetworkQueue *que = [[ASINetworkQueue alloc] init]; self.netWorkQueue = que; [que release]; [self.netWorkQueue reset];转载 2013-07-25 17:14:03 · 389 阅读 · 0 评论 -
ASIHTTPRequest 断点续传
1.导入ASIHTTPRequest第三方类库下载地址:ASIHttpRequest类库2.在 .h 文件中#import #import "ASIHTTPRequest.h" #import "ASINetworkQueue.h" @interface DownLoadViewController : UIViewController { U转载 2013-07-25 17:25:35 · 408 阅读 · 0 评论 -
JSON-framework 与 JSONKit的初步评估
JSON-Framework 和 JSONKit 都是Objective C 平台上比较常用的 JSON 数据访问工具。我经手过的项目中,这两个组件都用过。在JSONKit的主页上可以看到,JSONKit 的性能远优于JSON-Framework(即SBJSON),而使用上JSONKit也非常简单,这也得到了包括我在内的大多数同行的欢迎。但是在使用功能上,到底这两个工具有什么差异呢?我昨天索性转载 2013-07-26 11:10:47 · 462 阅读 · 0 评论 -
ASIHttpRequest学习笔记(1):创建队列、下载请求、断点续传、解压缩
刚刚开始学习ASIHttpRequest,今天通过自己写的一个小demo分享一下学习心得。首先,要想在ios项目中使用ASIHttpRequest,必须添加下列框架和类库:ASIHttpRequestCFNetwork.frameworkSystemConfiguration.frameworkMobileCoreServices.frameworkCoreGraphics.fra转载 2013-07-25 17:23:33 · 425 阅读 · 0 评论 -
ASIHTTPRequest-进度追踪
每个ASIHTTPRequest有两个delegate用来追踪进度:downloadProgressDelegate 下载)uploadProgressDelegate (上载).进度delegate可以是NSProgressIndicators (Mac OS X) 或者 UIProgressViews (iPhone).ASIHTTPRequest会自适应这两个class的行为转载 2013-07-25 17:22:27 · 295 阅读 · 0 评论 -
SDWebImage 笔记
SDWebImage托管在github上。https://github.com/rs/SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。使用示范的代码:UITableView使用UIImageView+WebCache类(基本应用,UIImageView的一个category转载 2013-08-02 08:44:36 · 598 阅读 · 0 评论 -
关于@synchronized(self)的用法
@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。# import "NetworkManager.h"static NetworkManager *networ转载 2013-08-19 22:11:05 · 464 阅读 · 0 评论 -
Objective-C中的锁
锁是线程编程同步工具的基础。锁可以让你很容易保护代码中一大块区域以便你可以确保代码的正确性。1 使用POSIX互斥锁 POSIX互斥锁在很多程序里面很容易使用。为了新建一个互斥锁,你声明并初始化一个pthread_mutex_t的结构。为了锁住和解锁一个互斥锁,你可以使用pthread_mutex_lock和pthread_mutex_unlock函数。列表4-2显式了要初始化并转载 2013-08-19 22:26:16 · 358 阅读 · 0 评论 -
ios编程--AVCapture编程理解
0、媒体采集的几个东西。这里所需要明白的是,在这个流程中,这里会存在几个对象: a、AVCaptureDevice。这里代表抽象的硬件设备。 b、AVCaptureInput。这里代表输入设备(可以是它的子类),它配置抽象硬件设备的ports。 c、AVCaptureOutput。它代表输出数据,管理着输出到一个movie或者图像。 d、AVCaptureSessi转载 2013-08-23 10:34:50 · 496 阅读 · 0 评论 -
UIBezierPath 的使用介绍
使用UIBezierPath类可以创建基于矢量的路径。此类是Core Graphics框架关于path的一个封装。使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状。 1.Bezier Path 基础 UIBezierPath对象是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线和曲线段去创建。我们使用直线段去创建转载 2013-08-23 10:37:18 · 372 阅读 · 0 评论 -
Key-Value Observing机制
知识点介绍Key-Value Observing (简写为KVO):当指定的对象的属性被修改了,允许对象接受到通知的机制。每次指定的被观察对象的属性被修改的时候,KVO都会自动的去通知相应的观察者。KVO的优点:当 有属性改变,KVO会提供自动的消息通知。这样的架构有很多好处。首先,开发人员不需要自己去实现这样的方案:每次属性改变了就发送消息通知。这是KVO 机制提供的最大的优转载 2013-08-14 13:44:34 · 392 阅读 · 0 评论 -
iPhone应用程序编程指南(事件处理)
iPhone OS支持两种类型的事件:即触摸事件或运动事件。在iPhone OS 3.0中,UIEvent类已经被扩展为不仅可以包含触摸事件和运动事件,还可以容纳将来可能引入的其它事件类型。每个事件都有一个与之关联的事件类型和子类型,可以通过UIEvent的type和subtype属性声明进行访问,类型既包括触摸事件,也包括运动事件。在iPhone OS 3.0上,子类型只有一种,即摇摆-运动转载 2013-08-15 21:53:10 · 643 阅读 · 0 评论 -
canBecomeFirstResponder
在自定义的UIView子类中,需要实现canBecomeFirstResponder方法,并返回YES(默认返回FALSE),才可使becomeFirstResponder可返回YES,才可使其成为第一响应者,即接受第一响应者状态。一个响应者只有当当前响应者可以取消第一响应者状态 (canResignFirstResponder) 并且新的响应者可以成为第一响应者时,才可以成为第一响应转载 2013-08-15 21:54:29 · 2823 阅读 · 0 评论 -
iPhone应用程序编程指南(图形和描画)
iPhone OS为创建高质量的图形提供两种路径:即通过OpenGL进行渲染,或者通过Quartz、Core Animation、和UIKit进行渲染。UIKit的图形系统在iPhone OS上,所有的描画—无论是否采用OpenGL、Quartz、UIKit、或者Core Animation—都发生在UIView对象的区域内。视图定义描画发生的屏幕区域。如果您使用系统提供的视图,描转载 2013-08-15 21:56:05 · 695 阅读 · 0 评论 -
iPhone应用程序编程指南(窗口和视图)
窗口和视图窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互。什么是窗口和视图?UIWindow的作用iPhone应用程序通常只有一个窗口,表示为一个UIWindow类的实例。您的应用程序在启动时创建这个窗口(或者从nib文件进行装载),并往窗口中加入一或多个视图,然后将它显示出来。窗口显示出来之后,您很少需要再次引用它。iPho转载 2013-08-15 22:01:07 · 664 阅读 · 0 评论 -
iOS框架研究 之 UIResponder 可以接收事件的对象(一)
1. 简介:此类继承自NSObject所属的框架: /System/Library/Frameworks/UIKit.framework定义了一些接口对象,然后响应事件,它是 UIApplication, UIView 和UIWindow等的父类iOS 中,所有显示在界面上的对象都是从 UIResponder 直接或间接继承的。最新版本的iOS中有三转载 2013-08-15 22:14:47 · 461 阅读 · 0 评论 -
iOS6新特征:UICollectionView介绍
1.1. Collection View全家福:UICollectionView, UITableView, NSCollectionViewn 不直接等效于NSCollectionViewn 也不替代UITableView----亲兄弟 为什么要使用Collection Views呢?n 可以高度定制内容的展现n 管理数据最佳的做法n 即使是处理转载 2013-08-28 09:22:24 · 506 阅读 · 0 评论 -
iOS之KVC和KVO
一、KVC(key-value-coding)1、只针对类属性,设置键值对2、设置setValue: forKey:,即forKey只能为类属性3、取值valueForKey二、KVO(key-value-observing)被观察者的属性发生改变时,通知观察者1、利用KVC对类属性进行设置2、注册observing对象addObserver:forKeyPath:opti转载 2013-08-16 21:30:05 · 442 阅读 · 0 评论 -
修改UISearchBar背景颜色
修改UISearchBar背景颜色 UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 要IB中没有直接操作背景的属性。方法一:是直接将 UISearchBarBackGround移去。方法二:是创建一个UIView设置其颜色加载到UISearchBarBaceGround上作为UISearch转载 2013-08-29 13:27:05 · 564 阅读 · 0 评论 -
Objective-C 编程语言(7)关联
关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。 关联是基于关键字的,因转载 2013-08-29 16:18:05 · 508 阅读 · 0 评论 -
如何设置tableview中head的字体颜色?
在改变tableview的背景颜色后,head的颜色往往很难看,如何修改之?实现函数-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section示例代码如下:-(UIView *) tableView:(UITableView *)tableView viewFo转载 2013-08-29 16:45:53 · 2122 阅读 · 0 评论 -
Objective-C中的锁
锁是线程编程同步工具的基础。锁可以让你很容易保护代码中一大块区域以便你可以确保代码的正确性。1 使用POSIX互斥锁 POSIX互斥锁在很多程序里面很容易使用。为了新建一个互斥锁,你声明并初始化一个pthread_mutex_t的结构。为了锁住和解锁一个互斥锁,你可以使用pthread_mutex_lock和pthread_mutex_unlock函数。列表4-2显式了要初始化并转载 2013-08-29 13:18:28 · 378 阅读 · 0 评论 -
NSJSONSerialization介绍
ios5中apple增加了解析JSON的api——NSJSONSerialization。网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。详情见这里。既然apple为我们提供了这么良好的工具,我们没理由不用吧。 NSJSONSerialization提供了将JSON数据转换为Fou转载 2013-08-29 22:31:42 · 552 阅读 · 0 评论 -
HTTP POST GET 本质区别详解
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POS转载 2013-08-29 22:37:56 · 544 阅读 · 0 评论 -
ASIHTTPRequest和libxml结合,实现边请求边解析
SIHTTPRequests 是非常强大的 http 异步请求开源框架,libxml 是非常老牌的 C 语言xml函数库。在 http + xml 文件的 javaEE-iPhone 应用中,如何把二者结合起来,实现在异步请求数据的同时,进行xml的同步解析呢?这涉及到 3 方面的关键知识:¥ ASIHTTPRequest这部分的内容可以参考作者另一篇博文《ASIHTTP转载 2013-08-29 22:39:39 · 508 阅读 · 0 评论 -
让Category支持添加属性与成员变量
Category是Objective-C中常用的语法特性,通过它可以很方便的为已有的类来添加函数。但是Category不允许为已有的类添加新的属性或者成员变量。 一种常见的办法是通过runtime.h中objc_getAssociatedObject / objc_setAssociatedObject来访问和生成关联对象。通过这种方法来模拟生成属性。//NSObject+In转载 2013-08-29 15:45:28 · 450 阅读 · 0 评论 -
利用类别(Category)为对象添加”实例变量”
利用类别(Category)为对象添加”实例变量”Posted by pimacun on 六 17, 2011 in 开发 |Subscribe主要利用ObjectiveC的C API中函数:void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationP转载 2013-08-29 15:56:13 · 411 阅读 · 0 评论 -
iOS使用NSURLConnection发送同步和异步HTTP Request
1. 同步发送- (NSString *)sendRequestSync{ // 初始化请求, 这里是变长的, 方便扩展 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; // 设置 [request setURL:[NSURL URL转载 2013-08-29 22:36:01 · 426 阅读 · 0 评论