随笔分类 -  Objective-C

摘要:NSIndexSet NSIndexSet 用来存储下标或者NSRange,具有两个版本 ,NSIndexSet 和 NSMutableIndexSet. // 定义一个数组 NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil] ; // 迭代获取符合条件的下标,返回一个下标... 阅读全文
posted @ 2015-03-12 09:55 malongs.com 阅读(392) 评论(0) 推荐(0)
摘要:retain 和 copy 的区别。 copy copy是通过旧对象创建一个新对象,新对象引用计数器为1,与旧对象的引用计数无关。 retain retain是创建一个指针,对象引用计数加1。retain 出来的指针和原对象的指针指向的内存地址是相同的。 如何实现copy 并不是所有对象都可以进行copy、mutableCopy 。对象如果可以被copy 则需要遵守NSCopying , 如果对象... 阅读全文
posted @ 2015-03-11 22:36 malongs.com 阅读(351) 评论(0) 推荐(0)
摘要:启动自动引用计数选项. 选择项目的属性文件 --》 搜索 automatic Reference --》 Objective-C Automatic Reference Counting --》 Yes ARC 和手动管理内存的区别。 ARC 并不是GC在运行中判断引用计数是否为0,从而清除内存。而是在代码编译之前通过静态分析工具Analyze自动生成内存管理代码。 开启ARC后,不能再使用ret... 阅读全文
posted @ 2015-03-11 22:34 malongs.com 阅读(288) 评论(0) 推荐(0)
摘要:手动内存管理 在进行内存管理的时候要注意内存管理的准则:谁开辟内存,谁释放内存(谁污染的谁治理) 。开辟内存之后,对象的引用计数为1,只有继承自NSObject的对象才有内促管理的概念, 当对象引用计数为0的时候对象的内存会被清理。 下列关键字会开辟内存,对象引用计数器+1 alloc new copy mutableCopy 下列是内存管理的相关方法。 retain :保留对象,对象... 阅读全文
posted @ 2015-03-11 22:33 malongs.com 阅读(343) 评论(0) 推荐(0)
摘要:类别 使用类别可以扩展类的功能,不管该类的源码是否存在都可以扩展,和继承的最大不同就是类别中的方法可以访问被扩展类的私有元素。 类别的命名通常使用"类+类别名"的形式,如 Person+PersonLife.h 类可以有多个类别。 类别会覆盖方法,如果类的方法和类别的方法冲突,则会调用类别的方法 类别可以访问私有元素,继承并不可以。 类别不能定义属性 类别的定义如下 #import "Pers... 阅读全文
posted @ 2015-03-11 22:31 malongs.com 阅读(306) 评论(0) 推荐(0)
摘要:SEL 类型 SEL 类型是用来描述一个方法的,可以理解为SEL是方法的指针.该SEL类型类似于Java中的Method类。OC中可以通过两种方法来获得SEL类型。 @selector(methodName) : NSSelectorFromString(@"methodName") ; 反射的方法 -(BOOL) isKindOfClass : (class) clazz isKindOfC... 阅读全文
posted @ 2015-03-11 22:29 malongs.com 阅读(268) 评论(0) 推荐(0)
摘要:ID类型 objective-c中id可以指向任何对象,在使用id的时候注意:不要再id后面加上'*' 。 id object = [[Child alloc] init]; // 类型转换 Child *child = (Child *) object ; [child myMethod] ;id 的缺点 id类型所存储的... 阅读全文
posted @ 2015-03-11 22:28 malongs.com 阅读(254) 评论(0) 推荐(0)
摘要:初始化方法的模板 -(id) init { // 标准初始化模板 self = [super init]; if (self) { // 实例变量初始化 } return self ; }多个初始化方法 @interface Person : NSObject// 定义属性@property(nonatomic) NSString *name ;... 阅读全文
posted @ 2015-03-11 22:27 malongs.com 阅读(589) 评论(0) 推荐(0)
摘要:继承的语法 在类的头文件中使用 ClassName : SuperClassName 的形式完成继承。我们每一个类都默认继承了NSObject 。 // 继承NSObject@interface Person : NSObject@end 子类不能访问父类的私有元素(实例变量、方法等)。 方法的复写 子类可以复写父类的方法,比如我们可以复写父类的description方法来展示当前类的信息。当使... 阅读全文
posted @ 2015-03-11 22:27 malongs.com 阅读(175) 评论(0) 推荐(0)
摘要:int在32bit和64bit有不同的最大值和占用不同的位数。 使用NSInteger,系统会根据当前环境(是32bit还是64bit)返回int 最大值。 NSUInteger 是 NSInteger 的无符号形式。 NSInteger 不是一个对象,它是基本数据类型的typedef ,格式化字符串使用%li. #if __LP64__ || (TARGET_OS_EMBEDDED && !... 阅读全文
posted @ 2015-03-11 22:25 malongs.com 阅读(946) 评论(0) 推荐(0)
摘要:异常的捕捉 // @try 块捕捉异常 @try { // 这里发生了一个异常 @throw [NSException exceptionWithName:@"demo" reason:@"the exception demo" userInfo:nil] ; } @catch (NSExcept... 阅读全文
posted @ 2015-03-11 22:23 malongs.com 阅读(258) 评论(0) 推荐(0)
摘要:【枚举类型】使用emum关键字创建枚举。// 定义一个枚举,用来表示方向enum Direction{up,down,middle,left,right};枚举的值都可以用数字表示,默认从零开始递增enum Direction direction = up ;// 输出0NSLog(@"direct... 阅读全文
posted @ 2015-01-25 16:57 malongs.com 阅读(527) 评论(0) 推荐(0)
摘要:【基本数据类型】类型占用字节short int2int4long intMac OS : 8/IOS: 4long long int8float4double8使用sizeof(type) 可以查看类型占用字节数//输出8NSLog(@"%lu",sizeof(double));来自为知笔记(Wiz... 阅读全文
posted @ 2015-01-25 16:57 malongs.com 阅读(215) 评论(0) 推荐(0)
摘要:【新建项目】在XCode中新建项目首先要选择项目模板。IOS : 用于编写IOS移动设备软件OS X : 用于编写Mac OS软件【填写项目信息】Project Name当前工程的产品名称.也就是程序生成后的名字Organization Name公司名称,或者作者名称Company Identifi... 阅读全文
posted @ 2015-01-22 22:06 malongs.com 阅读(327) 评论(0) 推荐(0)
摘要:【Objective-C常见的文件类型】 文件类型 说明 .m OC源码文件 .h 头文件 .c C源码文件 .cc C++源码文件 .mm OC++源码文件 【转义字符】 字符 说明 \b 退格 \t 制表 \r 回车 \t 水平制表 \v 垂直制表 \\ 反斜杠 【Format占位符,常用的加粗斜线表示】 占... 阅读全文
posted @ 2015-01-22 22:02 malongs.com 阅读(671) 评论(0) 推荐(0)
摘要:【环境搭建前言】 开发环境必须搭建再Apple公司的Mac OS 系统上。因此无论采取何种方式,首先至少需要一台装有Mac OS 系统的电脑。您可以通过购买Apple 电脑或者为PC机安装黑苹果来获得Mac OS。 【下载安装XCode工具】 您可以在Mac OS 中的 Apple Store 直接下载XCode, 也可以通过苹果开发者网站. 来下载XCode 。下载的XCode组件囊括了... 阅读全文
posted @ 2015-01-22 00:55 malongs.com 阅读(224) 评论(0) 推荐(0)