Objective-C
br152
这个作者很懒,什么都没留下…
展开
-
编写OC程序
1:OC程序的开发过程:.m源程序 —— .o目标文件——.out可执行文件 2:编写OC程序First.m 文件 #import void test(){ NSLog(@"hello world");}Second.m 文件#import "First.h"int main(){ test(); return 0;}注意:原创 2016-05-26 10:26:35 · 714 阅读 · 0 评论 -
分类:category
分类:category ://声明@interface 类名@end//实现@implemention 类名(分类名称)@end原创 2016-08-25 14:17:33 · 307 阅读 · 0 评论 -
协议的应用—代理设计模式
Person.h#import #import "Agent.h"@interface Person : NSObject//拥有一个代理属性@property(nonatomic,retain)Agent *delegate;-(void)buyTicket;@endPerson.m#import "Person.h"@implementation Person原创 2016-08-25 14:21:18 · 312 阅读 · 0 评论 -
ARC 下代理产生内存泄漏的情况
在ARC下依然会发生内存泄漏的情况,比如在使用代理的时候,A有个属性参照B,B有个属性参照A,如果将各自的对象的属性设为strong属性,因为两个对象都无法释放,就会发生内存泄漏的现象; 比如Person类让Agent对象去查看每张票的价钱并统计还剩多少张票,而Agent 让Person对象去统计有多少人去看电影,这个时候就会发生内存泄漏的现象,代码如下:Person.h#import原创 2016-09-03 10:45:25 · 393 阅读 · 0 评论 -
继承
当一段代码中包含了大量重复的内容,代码看起来很没有效率,编程时出现大量的重复代码意味着代码架构是一个失败的架构,因为你要维护两倍的代码,修改代码时,必须修改两处,这样很容易出错,如果你忘记更改其中一处代码,一些奇怪的bug就会出现,为了解决这个问题,提出了继承的概念; 继承的语法格式:@interface Circle:NSObject /* 继承的好处:抽取了公共代原创 2016-06-05 10:32:11 · 246 阅读 · 0 评论 -
description语法及点语法
1:-(description)对象方法 使用NSLog和%@输出某个对象时。会调用对象的description 方法,并得到返回值进行输出 2:使用 %@打印输出对象时,默认打印输出 ,NSLog 函数一旦发现用%@输出某个OC对象时,就会调用对象的description方法(默认为NSString类型),并将 description方法返回的Oc字符串返回到屏幕上,OC中的des原创 2016-06-09 11:43:44 · 737 阅读 · 0 评论 -
构造方法
1:使用构造方法的目的:为了让对象方法一构建出来,成员变量就拥有固定的值2:先调用父类的构造方法再进行子类子类内部成员变量的初始化#import@interface Person:NSObject@property int age;@end@implementation Person//如果想让person对象的age的初始值为10-(id)init{ //初始化对象原创 2016-06-09 16:22:52 · 417 阅读 · 0 评论 -
iOS中.pch文件的使用
以前在写代码的时候在屏幕适配和系统适配的时候都是建立一个头文件然后当某个类需要使用的时候#import 进去, 今天看公司的项目,发现他们使用的是一个.pch文件,既然两种方式都可以实现,那公司项目中为什么要使用.pch文件呢?原因是当我们的工程项目特别大的时候,我们需要把大量的头文件和宏定义导入到每一个类中,这样就会导致编译时间过长,系统耗费的资源过大。原创 2016-08-08 15:27:00 · 358 阅读 · 0 评论 -
类扩展:Extension
类扩展:Extension 也称为匿名分类 1:作用:1:能为某个类附加额外的属性,成员变量,方法声明 2:定义一些私有方法,可以隐藏不对外公布的方法,多用于隐藏一些中间步骤的方法 2:创建:NewFile-Objective-C-Extention 3:使用格式:创建成功后只有Person_action.h一个文件(cate原创 2016-08-25 14:18:50 · 329 阅读 · 0 评论 -
分类,扩展和继承的区别
1:分类和扩展的区别 分类:声明的时候使用格式中括号必须要有分类名称,创建完成后有两个文件夹(Person+action.h Person+action.m文件)@interface 类名 (分类名称)/* 方法声明*/@end@implementation 类名(分类名称)/* 方法实现*/@end 扩展:声明的时候使用格式中括号没有东西,原创 2016-08-25 14:19:44 · 1565 阅读 · 0 评论 -
iOS protocol 协议
vvvv原创 2016-08-25 14:20:39 · 295 阅读 · 0 评论 -
多态
/* 多态:多种形态(建立在继承的基础之上) 多态的体现:父类指针指向子类,每个OC对象都有多态性 多态的局限性:父类指针不能直接调用子类特有的方法,如果要正常调用子类特有的方法 需要将父类指针强制转换为子类指针 */#import@interface Zoombie:NSObject-(void)walk;@end@implementation原创 2016-06-05 14:48:12 · 272 阅读 · 0 评论 -
set方法,get方法和类方法的使用
1:使用封装的好处: 过滤掉不合理的值 屏蔽内部的赋值过程 让外界关注内部的细节 2:set方法,get方法 之前访问成员变量的时候,我们采用的都是@public设置属性,但是使用@public 不安全,成员变量可以任意被赋值,无法保证数据的安全性,所以我们使用set和get方法来管理成员变量;#import @i原创 2016-06-02 10:45:57 · 1496 阅读 · 0 评论 -
self 关键字的使用
根据上一篇的内容,当我们访问成员变量的时候,使用的是对象调用set的方法实现,但是有时候代码会很繁琐,所以为了解决这一问题,采用了self关键字访问;#import@interface Car : NSObject{ int _wheels;}-(void)setWheels:(int)wheels;-(int)wheels;-(void)run;@end@imp原创 2016-06-02 16:06:01 · 877 阅读 · 0 评论 -
OC 中多参数方法声明
#import @interface Calculator : NSObject{ @public int number;}-(double)pi; //返回 PI 的值//一个方法名对应一个冒号,冒号也是方法的一部分-(double)pingfang:(double)number; //实现计算器的平方运算-(double)SumOfnum:(double)n原创 2016-05-31 11:59:57 · 4748 阅读 · 0 评论 -
OC对象与函数
下面将讲解如何将OC语言与C语言混合编程;#import @implementation Bird :NSObject{ @public int height;}-(void)fly{ NSLog(@"鸟儿飞了%i高!",height);}@end//C语言函数使用的是传参的方式void test(Bird *myb){ myb->he原创 2016-05-26 12:53:40 · 314 阅读 · 0 评论 -
OC 中类的声明和定义
/* 1;声明类: @interface 和 @end 之间 *类名 *继承NSOBject * 属性 *方法(只需声明,不需实现) 2:实现:@implementation 和 @end 之间 * 实现@interface声明的方法 */#import @interface Dog:NSObject{ @public int原创 2016-05-31 11:06:12 · 546 阅读 · 0 评论 -
定义OC中的类
//为了能使用NSObject#import // 设计一个车类//@implementation 和 @end 之间定义类 {}中间只能写属性,不能写方法,其为类的成员变量//NSObject:让Car这个类具备创建对象的能力@implementation Car:NSObject{ //@public:让对象的属性可以被外面的指针访问。public后面的成员变量都为公有,原创 2016-05-26 11:26:39 · 287 阅读 · 0 评论 -
block
block:带有自动变量的匿名函数匿名函数:没有名字的函数,在OC中的block可以用指针来直接调用一个函数自动变量在block中的具体表现就是截获自动变量1:block的定义1:定义block变量 返回值类型(^block变量名)(参数类型1,参数类型2 ....) 2:给block变量赋值 block变量名 = ^(参数类型1, 参数类型2...) { };原创 2016-09-03 11:35:51 · 422 阅读 · 0 评论