OC语法8——@class关键字】的更多相关文章

@class关键字: 在当前类中若要引用其他类的对象作成员变量(Book  *book),我们以前采用的方式是 #import "Book.h" 但 #import "Book.h" 的意思是把整个Book.h文件拷贝进来.但是我们的需求是只要告诉编译器Book是个类就行了,所以写#import可以,但是效率不高. 为此,OC提供了个专门的关键字@class. @class  Book;只是给编译器声明Book是个类! @class Book; @class和#im…
关于OC语法的公开和私有的讨论 OC语法中,类的.h文件向外面暴露类的功能/方法接口,其中定义的属性/方法/协议/类别/类扩展都属于公开的,但实例变量要看限定词(@protected/@public/@private).而类.m封装了类内部的实现细节,对外是不公开的.故类.m中定义的实例变量/属性/方法/类扩展/类别/协议等都是私有的,值得一提的是,定义在.m文件类扩展中的实例变量,无论使用什么限定词(即使是@public),都是私有的. OC语法可以对类的实例变量加@private/@publ…
OC中@property属性关键字的使用(assign/weak/strong/copy) 一.assign 用于 ‘基本数据类型’.‘枚举’.‘结构体’ 等非OC对象类型 eg:int.bool等 二. weak 1. 一般应用: UI控件 2. 详细说明: (1)为什么建议UI控件一般使用weak?首先我们从controller来看,controller是被系统用强指针引用着,所以如果 controller 还存在,里面的子控件也会存在,那么controller 强引用着它的view(从 c…
OC 初识NSString,self关键字,继承,成员变量的可见性,description方法 初识 NSString: char * string = "旭宝爱吃鱼"; 常量字符串存储在静态区 NSString * string = "旭宝爱吃鱼"; OC对象存储在堆区 创建NSString对象: 1.用字面量来创建 NSString * string = @"旭宝爱吃鱼"; 2.通过类方法创建NSString对象 NSString * for…
@property的参数: 我们已经知道为了给开发者提供便捷,OC提供了@porperty关键字,它可以自动生成属性的set和get方法. 但是我们又知道,在OC中还面临者对象内存管理的问题,而且我们遵循“谁创建,谁释放”的原则管理内存. 所以我们得重写set方法:把原先的成员变量(对象)release掉,然后给新成员变量retain. 还得重写realloc方法:在realloc中调用release,释放该对象. 呵呵.我们引入@property的目的就是为了让其自动生成set和get方法的,…
点语法:   为了给程序员提供便捷,OC中也引入了点语法.不过它和Java中点语法的意义是完全不同的. 在Java中无论调用任何方法,还是访问public类型的成员变量都是用点语法(.号). 而在OC中只规定点语法只可以替代set和get方法. 例如.stu.age = 23;它的本质是[stu setAge : 23];  即,为stu的age属性赋值为23. int myAge = stu.age; 它的本质是[stu age]; 即,获取stu的age属性并赋值给MyAge. 注意: OC…
零.实例变量修饰符 /* @public 就是实例变量修饰符 @public >可以在其它类中访问被public修饰的成员变量 >也可以在本类中访问被public修饰的成员变量 >可以在子类中访问父类中被public修饰的成员变量 @private >不可以在其它类中访问被private修饰的成员变量 >可以在本类中访问被private修饰的成员变量 >不可以在子类中访问父类中被private修饰的成员变量 @protected >不可以在其它类中访问被prote…
OC常见的关键字介绍: @ 看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX. @interface 声明类 @implementation 实现类 @protocol 声明协议 @optional 与@protocol配合使用,说明协议中的某个或者某几个方法可以不实现 @required 与@protocol配合使用,说明协议中的某个方法或者某几个方法必须实现 @end 与@interface ,@implementation,@protoc…
Object-C简介: OC,即Object-C,iOS开发的核心语言.它是基于C语言的,在C的基础上做了面向对象的封装,所以OC是面向对象的语言.同时也因此OC是兼容C的,也就是说在iOS开发中,可以混入C代码,甚至C++代码. 语法特点: 1.没有包名的概念: 在Java中,为了防止2个类名相同的类冲突,你可以将2个类放在不同的包里.OC中没有“包”的概念,也就是说没有命名空间机制.取而代之的是“前缀”,可以在类前面加上前缀.这样即使2个类名相同,但只要前缀不同,便可以将它们区分. 2.关键…
1.Swift还增加了Objective-C中没有的类型比如元组(Tuple). 元组可以让你创建或者传递一组数据,比如作为函数的返回值时,你可以用一个元组可以返回多个值. 元组(tuples)把多个值组合成一个复合值.元组内的值可以使任意类型,并不要求是相同类型. //可以通过下标来访问元组中的单个元素let http404Error =(,"Not Found") println("The status code is \(http404Error.0)") /…