YIFEIYANG 易飞扬的博客

20,790 views
14五/100

iPhone开发技巧之网络篇(4)— 确认网络环境 3G/WIFI

iPhone开发技巧之网络篇(4)--- 确认网络环境 3G/WIFI

开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。

Reachability

Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。在你的程序中使用 Reachability 只须将该例程中的 Reachability.h 和 Reachability.m 拷贝到你的工程中。如下图:

Reachability

然后将 SystemConfiguration.framework 添加进工程:

Reachability

Reachability 中定义了3种网络状态。

[......]

Read more

10,548 views
12五/108

iPhone开发技巧之网络篇(3)— 使用NSOperation建立多任务网络连接

iPhone开发技巧之网络篇(3)--- 使用NSOperation建立多任务网络连接

在网络应用程序中,经常需要多任务连接来提高程序的性能。比如多任务下载,多任务HTTP请求等,即线程控制模型中的工作群模型。使用 NSOperation 可以很容易实现这个功能。下面就以使用NSOperation处理并行的HTTP请求为例子,说明其用法。

首先准备一个 NSOperation 的子类,用于处理 HTTP 请求。

1
2
3
4
5
6
7
8
@interface RequestOperation : NSOperation {
  NSURLRequest*  _request;
  NSMutableData* _data;
}

- (id)initWithRequest:(NSURLRequest *)request;

@end

下面是实现:

[......]

Read more

9,933 views
20四/100

iPhone开发技巧之网络篇(2)— Web服务

iPhone开发技巧之网络篇(2)--- Web服务

说到XML不得不提WEB应用中最常见的几种通讯规范:SOAP,XML-RPC,REST,WSDL,JSON等,他们都是基于XML协定的。在这里介绍几种处理web应用中可以利用的程序库:

现在云计算技术很火,无论是类似 Google App Engine 的 PAAS 还是 Amazon EC2 的 IAAS 服务或者是类似 Twitter 的 SAAS。不可避免的都需要与 XML 打交道。所以掌握了这个标准,开发网络应用就不怕了。

关于这些协议的具体意义这里就不详述了,可查阅相关文档。这里只介绍一些封装好的类库,以便于开发。

WSDL2ObjC

WSDL2ObjC用来处理SOAP类型的web服务。同样也是基于libxml2的Objecti[......]

Read more

18,944 views
16四/104

iPhone开发技巧之网络篇(1)— 解析XML

iPhone开发技巧之网络篇(1)--- 解析XML

开发 iPhone 上的网络应用程序的时候时常需要解析XML文档,比如web应用中的SOAP,REST,RSS信息等都是以XML为基础的。掌握XML解析的技术是很重要的。这里我将为大家介绍一下iPhone下解析XML的几种方法,并比较其性能。

iPhone的XML库

iPhone中标准的XML解析库有两个,分贝是libxml2和NSXMLParser。

libxml2[......]

Read more

5,024 views
13四/100

iPhone开发技巧之工具篇(3)— 使用clang静态解析Objective-C程序

iPhone开发技巧之工具篇(3)--- 使用clang静态解析Objective-C程序

这一回介绍一下 clang,一个用来静态解析程序的工具。

clang 是 LLVM 编译器项目中的其中之一。LLVM 支持 C/C++/Objective-C 语言,并有许多 Apple 的工程师加入这个项目。

静态解析程序

静态解析是指不用执行程序,而是从程序的代码构成来分析错误和预测问题。比如Java中的FindBugs,C++中的prefast等。通过这些工具可以一定程度的减少程序中的错误数量。

一般静态解析,分析以下几类问题:

  • 代码形式,名称是否违规
  • 警告容易出错的代码
  • 警告程序运行时可能出现问题的代码

比如容易引起内存泄漏的代码,会被其检测出,提示你修正。

用clang来解析iPh[......]

Read more

6,109 views
5四/101

iPhone开发技巧之工具篇(2)— Accessorizer自动化生成代码

iPhone开发技巧之工具篇(2)--- Accessorizer自动化生成代码的工具

Accessorizer 是一款自动化代码的工具,可以为你自动生成 property,Keyed Archiving 等定型的代码,省去了我们不少开发的时间。

Accessorizer

使用方法在作者的站点上有video演示,可以了解更多,这里只介绍一些基本的使用方法。

  • 首先设置自己的编码风格
  • 启动 Accessorizer
  • 双击 Xcode 中 @interface 的大括号,选择实例
  • 按下 Cmd+1
  • 自动弹出 Accessorizer ,点击 Cmd+TAB 退回到 Xcode
  • 代码已经自动拷贝到剪切板,粘贴到合适的地方
7,943 views
1四/101

iPhone开发技巧之工具篇(1)— 将XIB文件转换为Objective-C源程序

iPhone开发技巧之工具篇(1)--- 将XIB文件转换为Objective-C源程序

nib2objc是一个小巧的转换工具,可以将XIB文件自动转换为Objective-C的源代码文件。

通常,考虑到程序的效率时,才将XIB直接转换为源代码文件。但是这样一来,通过Interface Builder设定的实例变量与行为方法的接续也没有了,需要从新手写。但是,该工具的源代码是公开的,稍加修饰,就能完成大部分工作。

使用的时候,首先下载的工程代码并用XCode编译一下,会生成一个命令行程序文件 nib2objc。然后如下所示执行转换:

1
$ nib2objc WebView.xib > WebView.m

nib2objc

像是上面view转换后会输出以下代码:

1
2
3
4
5
6
7[......]

Read more

8,684 views
28三/103

iPhone开发技巧之环境篇(8)— 使用非公开的API

iPhone开发技巧之环境篇(8)--- 使用非公开的API

苹果官方发布的iPhone SDK对底层API进行了很大的限制。官方的SDK是在某些底层API之上增加了一层针对开发者的类库,供开发者使用,这些非公开的底层API可以用 class-dump 等工具直接展开,这样开发者就可以通过展开的头文件定义直接与iPhone中的所有框架库进行对话.

但是这些API是 undocumented 的,需要自己琢磨使用的方法。下面就介绍一下 Private Framework API 头文件的生成方法。

生成非公开API的头文件

下载 class-dumpdump.pl , 并将 class-dump 拷贝到 /usr/local/bin 下, 如果没有执行权限,用 chmod 加上。dump.pl 放到任意适当的位置,同样加上[......]

Read more

9,367 views
23三/100

iPhone开发技巧之环境篇(7)— 区分不同版本的iPhone

iPhone开发技巧之环境篇(7)--- 区分不同版本的iPhone

执行环境

可以从 UIDevice 的属性 model 得到在现在执行的环境。例子如下:

1
2
3
4
5
6
7
8
9
10
NSString *modelname = [[UIDevice currentDevice]model];
if ([modelname isEqualToString:@"iPhone"]) {
  // iPhone
}
if ([modelname isEqualToString:@"IPod Touch"]) {
  // iPod touch
}
if ([modelname isEqualToString[......]

Read more

3,363 views
21三/100

iPhone开发技巧之环境篇(6)— 创建工程模板

iPhone开发技巧之环境篇(6)--- 创建工程模板

经常用 Visual Studio 的朋友可能都熟悉该IDE中的向导模板,类似的项目工程都有固定的模式,框架,库结构等。在开发iPhone 的时候也可以自己定制这样的模板,提高我们的开发效率。

这一回就介绍一下创建模板的方法。

拷贝

iPhone应用程序的模板一般保存在下面的路径:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/
Project Templates/Application

Xcode_template

首先拷贝这个文件夹到下面的路径,作为我们的基础模板。

~/Library/Application Support/Developer/Shared/Xcode/Project Templates/
Applicati[......]

Read more

Page 5 of 12« First...«34567»10...Last »