objective-c 编程基础(一 基础语法)
来源:互联网 发布:快递单打印软件注册码 编辑:程序博客网 时间:2024/06/05 15:21
先看一下oc的头文件名和实现文件名
类的定义:
类的定义是一对
@interface SimpleClass:NSObject@endSimpleClass 是类名,:NSObject 代表改类继承 NSObject
类的属性声明:
@interface SimpleClass:NSObject@property NSString*firstName;@property NSString*lastName;@end声明了一个NSString类型的firstName对象,*表示指向一块堆内存,*表示声明的是一个对象
@property NSNumber *yearOfBirth;@property int yearOfBirth;@property (readonly) NSString *firstName;
上面这3个,第一种,是声明了yearOfBirth对象;第二种 ,是一个基础类型,不是对象;第三种,前面有( readonly)说明它是一个只读的对象,不可以写,只能获取它的值;
这里再介绍一下@property这个关键字,变量的声明语法为:
@property(attribution)Vartype Varname;//属性在()里来定义,然后是变量类型、变量名。
OC提供的属性有:
读写属性: (readwrite/readonly)以及(getter=name)、(setter=name)
setter语意:(assign/retain/copy)
对于Objective-C中的一般object,最好使用用retain。一些特别的object(例如:string)使用copy。
而assign关键字代表setter直接赋值,而不是复制或者保留它,更不需要进行引用计数。这种机制非常适合一些基本数据类型,比如NSInteger和CGFloat,或者你并不直接拥有的类型,比如delegates((且一定要用assign,具体原因暂时不知道,读者看到这里可以留言给我,告诉我答案)。
原子性: (non)atomic
注意:其实加了@property的代码可以这样展开:
@property ( nonatomic , assign ) int sid;展开为
int _sid;
@property ( nonatomic , retain ) Book * mBook;展开为
Book* _mBook;
其实就是自动生成了set和get方法,而且属性前面加了_,访问的时候必须这样访问 _mBook, 访问的时候不加_,会报错
其实减号就是一个普通的函数,void代表没有返回值
上面的id类型代表通用类型,相当于java的Object 类型
在oc中,类的实现是放在.m 文件中的,完整的例子,如下图:
上面是声明类一个类,类名是XTZPerson,继承 NSObject,有一个方法sayHello, 这里不写实现的,具体实现在.m文件里面写。实现某个类的时候,要用一个关键字implementtation, 然后实现这个类的方法,这里的NSLog其实就是一个打印语句,会输出到控制台,里面的@符号代表它是一个oc类型的字符串,如果不加@,说明它是一个c语言的字符串(其实是一个数组数组)。
- objective-c 编程基础(一 基础语法)
- Objective-C基础语法(一)
- Objective-C基础语法(一)
- Objective-C基础语法(一)
- Objective-C 基础语法
- Objective-C 基础语法
- objective-c语法基础
- Objective-C 基础语法log打印那些事儿(一)
- Objective-C 基础语法log打印那些事儿(一)
- Objective-C 基础语法log打印那些事儿(一)
- Objective-C研究院之基础语法(一)
- Objective-C 基础语法log打印那些事儿(一)
- Objective-c基础(一)
- Objective C基础(一)
- Objective-C基础语法(二)
- [Objective-C] 01.Objective-C语法基础
- Objective-C语言:基础语法
- Objective-C 基础语法详解
- ubuntu dpkg -i 依赖问题
- 【Java进阶四】抽象类和接口
- Program4_W
- laravel框架学习(一)
- Android消息推送机制
- objective-c 编程基础(一 基础语法)
- C语言 求两个数的最大公约数
- 并查集-UnionSet【朋友圈问题】
- UIStepper
- LeetCode(2)——Intersection of Two Arrays
- Android如何使用API
- Problem4-1004
- Spring 事务的处理
- iOS Foundation 基础框架