随笔分类 -  02-Objective-c:基本语法

摘要:内存管理之五《ARC-Automatic Reference Counting》1.ARC概念ARC是Automatic Reference Counting---自动引用计数。ARC是一种编译器特性,并不是java中得垃圾回收,java中的垃圾回收是运行时特性;ARC的判断准则:只要没有强指针指向... 阅读全文
posted @ 2015-03-20 00:52 深秋的露水 阅读(200) 评论(0) 推荐(0)
摘要:内存管理之四——autorelease自动释放池1.autorelease的基本使用此对象方法会将对象放到一个自动释放池内;当自动释放池被销毁时,就会对池子内的所有对象做一次release操作;此方法会返回对象本身;调用完此方法后,对象计数器的值不变,只有到自动释放池被销毁时才会对对象做一次rele... 阅读全文
posted @ 2015-03-18 01:17 深秋的露水 阅读(445) 评论(0) 推荐(0)
摘要:内存管理之三——《@property的内存管理》1.@property中与setter内存管理相关的参数retain : release旧值,retain新值(适用于OC对象类型);assign : 直接赋值,(默认,适用于非OC对象类型);copy : release旧值,copy新值;2.@pr... 阅读全文
posted @ 2015-03-18 00:11 深秋的露水 阅读(380) 评论(0) 推荐(0)
摘要:内存管理之二——《多对象的内存管理》1.多对象的内存管理方式:只要有人使用了这个对象,这个对象就不能被销毁;只要你想使用这个对象,就让这个对象的引用计数器的值+1(让对象做一次retain操作);当你不再使用这个对象,就让这个的对象的引用计数器的值-1(让对象做一次release操作);谁alloc... 阅读全文
posted @ 2015-03-17 22:16 深秋的露水 阅读(165) 评论(0) 推荐(0)
摘要:内存管理1.为什么要进行内存管理移动设备的内存极其有限,每个app所能占用的内存是有限制的;当app所占用的内存较大时,系统就会发出内存警告,这时就的回收一些不需要使用的内存空间。比如:回收一些不需要的对象,变量等;内存管理的范围:任何继承了NSObject的对象,对其他基本数据类型(int、cha... 阅读全文
posted @ 2015-03-16 23:56 深秋的露水 阅读(160) 评论(0) 推荐(0)
摘要:SEL1.SEL类型的定义 2.方法的存储位置每个类的方法列表都存储在类对象中每个方法都有一个与之对应的SEL类型的对象根据一个SEL对象就可以找到方法的地址,进而调用方法3.SEL对象的创建 方式一: 方式二:将一个字符串转换成SEL类型的数据 4.用SEL调用方法无形参方法的调用:①:将... 阅读全文
posted @ 2015-03-16 00:59 深秋的露水 阅读(405) 评论(0) 推荐(0)
摘要:description方法有两种:- description方法和+ description方法1、-description方法使用NSLog和%@输出某个对象时,会调用对象的 - description方法,并拿到返回值(NSString *)进行输出(默认为:)2.+ description方法... 阅读全文
posted @ 2015-03-14 00:59 深秋的露水 阅读(298) 评论(0) 推荐(0)
摘要:类的加载和初始化当程序一启动,就会加载项目中所有的类和分类,而且加载后会调用每一个类和分类中的+load方法(即使不创建对象也会调用),且只会调用一次;当第一次使用某个类时,就会调用当前类的+initialize方法;先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法);... 阅读全文
posted @ 2015-03-13 23:39 深秋的露水 阅读(302) 评论(0) 推荐(0)
摘要:类的本质:类本身也是一个对象,是一个Class类型的对象,简称类对象;1.内存中创建对象的本质:利用Class 创建一个 Person类对象;利用person类对象,创建Person类型的对象。2.类对象及对象内存细节:3.类对象的其他使用:调用类方法:1.利用类名调用类方法: 2.利用类对象调用类... 阅读全文
posted @ 2015-03-13 23:09 深秋的露水 阅读(177) 评论(0) 推荐(0)
摘要:给NSString类增加一个类方法(计算某个字符串中阿拉伯数字的个数)和一个对象方法(计算某个字符串中阿拉伯数字的个数)代码练习:分类(NSString + Number).h文件:分类(NSString + Number).m文件: mian.m文件 运行结果: 阅读全文
posted @ 2015-03-13 21:16 深秋的露水 阅读(366) 评论(0) 推荐(0)
摘要:category(分类)1.作用:在不改变原来类内容的基础上,增加一些方法,但是不能增加成员变量;2.分类的使用注意:分类只能增加方法,不能增加成员变量分类方法实现中可以访问原来类中声明的成员变量(必须是手动的声明)分类中可以重新实现原来类中的方法,但是会覆盖掉原来类中的方法,会导致原来类中的方法失... 阅读全文
posted @ 2015-03-13 20:23 深秋的露水 阅读(178) 评论(0) 推荐(0)
摘要:一、构造方法1.构造方法:用来初始化对象的方法,是一个对象方法,- 开头;2.重写构造方法的目的:让对象创建出来,成员变量就会有一些固定的值;3.创建对象的两种方式: 4.重写构造方法:1.先调用父类的构造方法:[super init]; 初始化父类中神明的一些成员变量。2.在进行子类内部成员变量的... 阅读全文
posted @ 2015-03-12 23:03 深秋的露水 阅读(220) 评论(0) 推荐(0)
摘要:一、@property和@synthesize的基本使用@property :可以自动生成某个成员变量的setter和getter的声明(@property int age;)。写在@interface里面; @synthesize :自动生成age的setter和getter,并且在方法内部访问的... 阅读全文
posted @ 2015-03-12 22:07 深秋的露水 阅读(672) 评论(0) 推荐(0)
摘要:成员变量的作用域成员变量的作用域共分为4种:@private :只能在当前类的实现(@implementation)中直接访问,即当前类的对象方法中访问。@protected : 可以在当前类以及其子类的实现(@implementation)中直接访问,默认。@public : 任意地方都可以直接访... 阅读全文
posted @ 2015-03-12 00:54 深秋的露水 阅读(176) 评论(0) 推荐(0)
摘要:点语法1.点语法与setter和getter有关Person *p = [Person new];[p setAge : 10]; // 等价于 p.age = 10;int a = [p age]; // 等价于 int a = p.age;2.说明:p.age = 10; 并非访问p对象的成员变... 阅读全文
posted @ 2015-03-11 21:53 深秋的露水 阅读(249) 评论(0) 推荐(0)
摘要:NSString类@“123456” 也是一个类,其类就是NSString类;1.最简单的创建字符串的方式NSString *name = @"jack";2.创建OC字符串的另一种方式:利用NSString类的类方法 stringWithFormat:NSString *str = [NSStri... 阅读全文
posted @ 2015-03-10 23:54 深秋的露水 阅读(168) 评论(0) 推荐(0)
摘要:super关键字1.作用:直接调用父类中的方法;[super 方法名] 处在对象方法中,super就会调用父类中的对象方法;[super 方法名] 处在类方法中,super就会调用父类中的类方法;2.使用场合:子类重写父类的方法时,想保留父类中的一些行为;3.代码练习:#import @interf... 阅读全文
posted @ 2015-03-10 00:33 深秋的露水 阅读(202) 评论(0) 推荐(0)
摘要:一、self(关键字)的用途:1> 概念:指向当前的对象或类(谁调用了当前方法,self就代表谁) * self出现在对象方法中,self就代表当前对象 * self出现在类方法中,self就代表类2> 在对象方法中可以利用“self->成员变量名”访问当前对象内部的成员变量(类方法中不能访问成员变... 阅读全文
posted @ 2015-03-09 21:40 深秋的露水 阅读(150) 评论(0) 推荐(0)
摘要:一、对象方法1> 减号 - 开头2> 只能由对象来调用3> 对象方法中能访问当前对象的成员变量(实例变量)二、类方法1> 加号 + 开头2> 只能由类名来调用3> 类方法中不能访问成员变量(实例变量)注:可以允许类方法和对象方法同名三、类方法的好处及使用场合1> 类方法不依赖于对象(不创建对象也可以... 阅读全文
posted @ 2015-03-09 21:08 深秋的露水 阅读(139) 评论(0) 推荐(0)
摘要:OC弱语法OC在运行过程中才会检测对象有没有实现相应的方法(动态监测),而即使没有写方法的实现代码,在编译、连接过程中只会有警告,运行时会奔溃,如果在手机上运行这样的代码,运行过程中就造成闪退!1.如果对象调用了一个既没有声明又没有实现的方法test,编译能通过(有警告:warning: 'Pers... 阅读全文
posted @ 2015-03-09 20:52 深秋的露水 阅读(191) 评论(0) 推荐(0)