- 浏览: 526588 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
landerson:
明显就有要求的嘛
ANDROID轻量级JSON序列化和反序列化[转] -
jimode2013:
很不错,就是需要这个方法
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转] -
w11h22j33:
...
[转]NSMutableArray中的自动释放对象让我郁闷了一整天 -
w11h22j33:
UILabel* label = [[UILabel a ...
Iphone开发 -
w11h22j33:
http://mobile.51cto.com/iphone- ...
获得通讯录中联系人的所有属性[转]
http://unmi.cc/objective-c-snippets
1. 初始化一个空的数组
NSMutableArray *array = [NSMutableArray arrayWithObjects:nil];
//或者,这里的 Capacity 像 java 的 ArrayList 中的 Capacity
//NSMutableArray ×array = [NSMutableArray arrayWithCapacity:5];
MSLog(@"%i", [array count]);
如果用到了 alloc 的话,就必须自己处理好相应的 release 操作了,像:
NSMutableArray *array = [[NSMutableArray alloc] init];
NSMutableArray *array1 = [[NSMutableArray alloc] initWithCapacity:5];
NSMutableArray *array2 = [[NSMutableArray alloc]initWithObjects:nil];
其实要初始化某种类型集合的空集合,下面的那些方式应该是更为合适的:
NSArray *array = [NSArray array];
NSMutableArray *array1 = [NSMutableArray array];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
NSSet *set = [NSSet set];
2. 类的初始化方法:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
NSInteger globalVar = 5;
@interface TestClass : NSObject
- ( void ) foo;
@end @implementation TestClass
//在第一次加载 TestClass 时被自动调用 + ( void ) initialize {
extern NSInteger globalVar;
globalVar += 5;
} - ( void ) foo {
NSLog (@ "globalVar: %i" , globalVar);
} @end //应用上面的代码
TestClass *test = [[TestClass alloc] init];
[test foo]; //输出为 10
TestClass *test1 = [[TestClass alloc] init];
[test1 foo]; //输出也是 10
|
Objective-C 的 + (void) initialize 就相当于 Java 中的 static {} 静态块一样,+ (void) initialize 类初始方法也只会被调用一次。在 Objective-C 和 Java 它们各自反应为:
Objective-C 的 + (void) initialize ------------ _class_initialize
Java 的 static {} ------------ <cinit>, 现在看到的是 static{}
3. 多线程相关的代码
Obj-C 中与多线程相关的类有 NSOperation、NSOperationQueue 和 NSThread。NSOperation 类似与 Java 的 Runnable 接口,只是要实现的 NSOperation 的方法是 -(void) main; 当把 NSOperation 加到 NSOperationQueue 后,队列就会为每个 NSOperation 实例分配一个 NSThread 去启动它。NSOperation 执行完后会被 release 掉。
下面是使用 NSOperation 和 NSOperationQueue 的一段完整代码:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#import <Foundation/Foundation.h> @interface MyOperation : NSOperation {
NSString *name;
} @end @implementation MyOperation
- ( id ) initWithName: ( NSString *) theName {
self = [ super init];
name = theName;
return self ;
} - ( void ) main {
NSLog (@ "Thread %@ Start run: %@" , name, [ NSDate date]);
} @end int main ( int argc, const char * argv[])
{ NSAutoreleasePool * pool = [[ NSAutoreleasePool alloc] init];
NSOperationQueue *queue = [[ NSOperationQueue alloc] init];
NSOperation *operation1 = [[[MyOperation alloc] initWithName:@ "One" ] autorelease];
NSOperation *operation2 = [[[MyOperation alloc] initWithName:@ "Two" ] autorelease];
NSOperation *operation3 = [[[MyOperation alloc] initWithName:@ "Three" ] autorelease];
[queue addOperation:operation1];
[queue addOperation:operation2];
[queue addOperation:operation3];
[queue setMaxConcurrentOperationCount:2]; //可设置同时并发数
sleep(50000);
[pool drain];
return 0;
} |
执行结果输出中顺序是不定的,像:
011-08-09 14:20:54.144 TestObjC[3602:1c03] Thread Two Start run: 2011-08-09 06:20:54 +0000
2011-08-09 14:20:54.144 TestObjC[3602:1e03] Thread One Start run: 2011-08-09 06:20:54 +0000
2011-08-09 14:20:54.146 TestObjC[3602:1e03] Thread Three Start run: 2011-08-09 06:20:54 +0000
NSOperation 还有一个子类是 NSInvocationOperation,它与 NSOperation 的区别是可以指定线程要执行的实例的某个方法,而不只限制是 main 方法。
发表评论
-
iOS App性能优化
2014-01-03 11:23 1644http://www.hrchen.com/2013/05/ ... -
iOS多线程编程Part 3/3 - GCD
2014-01-03 11:21 1587http://www.hrchen.com/2013/07/ ... -
iOS多线程编程Part 2/3 - NSOperation
2014-01-03 11:20 4479http://www.hrchen.com/2013/06/ ... -
iOS多线程编程Part 1/3 - NSThread & Run Loop
2014-01-03 11:17 7034http://www.hrchen.com/2013/06/ ... -
iOS移动网络环境调优那些事[转]
2014-01-02 17:10 2656http://xiangwangfeng.com/201 ... -
生成APNS Service证书的步骤[转]
2013-05-23 09:19 5631要进行推送服务的第一件事就是获取推送证书。它用来对你通过SS ... -
xcode 环境,多工程联编设置【转】
2013-02-28 21:59 8868http://blog.csdn.net/vienna_zj ... -
干掉你程序中的僵尸代码【转】
2012-12-22 11:05 921随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个 ... -
一个文本框搞定信用卡相关信息的输入[转]
2012-12-22 11:03 1082http://beforweb.com/node/134 ... -
【转】深度技术分析“为什么ios比android流畅”
2012-09-23 19:41 1400原文 Andorid更新了一个版本又一个版本,硬 ... -
Iphone开发
2012-09-17 22:46 11581. NSClassFromString 这个方法 ... -
HowTo: Install iPhone SDK 2.0 – 3.1 for XCode 3.2[转]
2012-09-06 09:00 1173原文链接 So… you’ve installe ... -
Xcode 中设置部分文件ARC支持[转]
2012-08-03 10:57 1697ARC是什么 ARC是iOS 5推出的新功 ... -
xcode4 设置调试错误信息小结【转】
2012-07-19 14:37 1752方案1:NSZombieEnabled 先选中工程, ... -
Finding iPhone Memory Leaks: A “Leaks” Tool Tutorial【转】
2012-07-19 14:36 1232Finding iPhone Memory Lea ... -
[Cocoa]XCode的一些调试技巧【转】
2012-07-19 14:35 1168XCode 内置GDB,我们可以在命令行中使用 GDB ... -
[IPhone]如何使用Leak检查内存泄漏[转]
2012-07-19 14:34 1182简介 在IPhone程式开发中,记忆体泄漏(内存泄漏)是 ... -
获得通讯录中联系人的所有属性[转]
2012-06-21 14:04 1558获得通讯录中联系人的所有属性 ,看代码: ABAdd ... -
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转]
2012-06-20 23:51 16368------------------------------- ... -
shouldAutorotateToInterfaceOrientation 不触发或者不执行的问题[转]
2012-06-20 22:58 1408今天遇到一个很郁闷 ...
相关推荐
日记记录的时候就记录三个数据,标题,内容,写日记的时间。这个时间精确到秒,相当于数据库的主键。我们点击以前写的日记项,也可以对其进行修改,这个时间也会修改。 3.界面设置 我先贴两个图片大家理解一下就好...
FOUR是一个美丽而轻巧的任务记录应用,围绕“一万小时定律(作家格拉德威尔在《异类》一书中指出:人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成...
由于本人在项目中会用到这部分功能,做下记录! JS调用OC 很多应用里面或多或少的调用了网页,来达到绚丽的效果,所谓的JS调用OC…..举个例子吧,网页上有个按钮 点击按钮跳转界面,跳转的动作由OC的代码实现。 OC...
用于Swift和Objective-C的颜色框架(渐变颜色,十六进制代码支持,图像颜色等等)。 适用于Mac和iOS的快速,简单,功能强大且灵活的日志记录框架 适用于Mac和iOS的异步套接字网络库 适用于iOS和Mac OS的简单,高度...
Objective-C编码约定指南记录了许多最佳实践,这些最佳实践是从十多年来在Microsoft的Apple平台上开发软件(例如的经验中学到的。 这不是样式指南(为此使用 ),而是影响实施的指南。 本文档按语言区域组织。 我们...
Objective-C 风格指南 目录 布尔值 单身人士 延迟后执行代码 并发 通知事项 类别 Xcode 项目 注释 当需要时,应该使用注释来解释为什么一段特定的代码会做某事。 使用的任何评论必须保持最新或删除。 通常应该避免...
系统日志客户端 用于查询 iOS 和 Mac OS X 系统日志历史记录(控制台日志)的 Objective-C 代码。
此README文件旨在提供MIKMIDI的广泛概述。 有关MIKMIDI的更多完整文档,请参见。 有关问题,请直接与( 。MIKMIDI MIKMIDI是由Andrew Madsen创建并由他... 但是,MIKMIDI也可以从Objective-C代码中轻松使用。 MIKMIDI是
jazzy是一个命令行实用程序,可为Swift或Objective-C生成文档 关于 Swift和Objective-C项目均受支持。 与解析源文件不同, jazzy钩接到和以使用代码的表示及其注释来获得更准确的结果。 输出与WWDC 2014之后的苹果...
在C ++和Objective-C之间转换的Objective-C ++代码。 安装 Djinni要求Java能够执行! Linux,macOS 手动下载并安装 下载,使其可执行,然后将包含的文件夹放在PATH中: curl -LO ...
嘿,简洁,这是一个用于Objective-C的不错的开源OSC库。 在来自您的朋友。 为了方便起见,我们包含了的一些公共域源文件。 但是,应该将有关该代码的适当的谢意,荣誉和好奇心发送。 使用说明 F53OSC必须使用ARC...
适用于任何Apple * OS的Rollbar SDK Objective-C和Swift SDK,用于使用进行远程崩溃,异常,错误报告和日志记录。 它适用于所有Apple * OS平台(macOS,iOS,tvOS,watchOS等)。 注意:此SDK本质上是我们的的...
代码记录创建者 Code Logging Creator(clc)是一个命令行实用程序,它读取Objective-C头文件并创建一个由越狱开发工具Theos编译的xm文件和/或与CaptainHook框架一起使用的mm文件。 它编写钩子方法并记录指定类的每...
博士BCJSONReader 是一个用于处理现实世界中存在的疯狂 JSON 结构的库。 它的主要特点是: 灵活的。 提供处理许多 JSON 使用样式的功能。 可扩展。 易于集成自己的代码并仍然使用 BCJSONReader 内部结构。 记录在案...
Objective-C 连接起来。 Python 支持在python分支上的实验版本中可用。 PyGinny 可用于在 Android 和 iOS 上将跨平台 C++ 库代码与特定于平台的 Java 和 Objective-C 接口。 有关 PyGinny 以及其他人如何使用它的更...
如何使用 Objective-C 使用 NSPredicate 从容器的公共数据库中查询记录 如何使用 Swift 使用 NSPredicate 从容器的公共数据库中查询记录 ####设置您的项目 在 Xcode 中,只需打开iCloud 功能,检查 CloudKit,然后...
Doxygen是事实上的标准工具,可从带注释的C ++来源生成文档,但它也支持其他流行的编程语言,例如C,Objective-C,C#,PHP,Java,Python,IDL(Corba,Microsoft和UNO / OpenOffice等) ),Fortran,VHDL和某种...
• 具有低内存占用的本机C/Objective-C/Java 代码。 • 适用于大量日志(最多 65536 个条目)。 • 使用本机平台UI 构建(不依赖Unity GUI)。 • 与分辨率无关(在高分辨率/视网膜显示屏上看起来很棒)。 • 不...
NSObject类参考文档里记录第三种方法是因为历史原因遗留下来的,在当前的Objective C中已经不再使用,所以我们就不考虑这种方式了。下面让我们主要看一下前两种方式。 第一种方式,用new方法初始化其实是第二种...
假微信简介仿微信iOS客户端,基于Objective-C语言及MVC框架实现。此为本人第二个iOS项目,第一个项目:项目详情可以看我的博客:有什么问题希望可以多多交流,顺便求个 :star: 〜实现功能聊天(接收图灵机器人API,...