objective-c 编程基础(一 基础语法)

先看一下oc的头文件名和实现文件名

  

 类的定义

 类的定义是一对

@interface SimpleClass:NSObject
@end
 SimpleClass 是类名,: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语言的字符串(其实是一个数组数组)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值