ios 初学者笔记3:objective-c 基础

一个app由许多的objects组成,这些object是objective-c类的实例,或者是cocoa 或cocoa touch类的实例。

class定义了某种特定类型的objects所共同具有的property和behaviors.  一个类由两个文件组成:interface和implementation

class 的继承:当一个类从别的类继承时,该类继承了父类的所有的属性和行为,子类可以对父类的方法进行重写或自己添加子类所独有的方法

NSObject是所有类的基类

一个类本身就是一个对象,他的类型是class.

Object在用以前需要先创建,分配内存区存储,对object的property做适当的初始化

通常调用alloc和init方法来初始化一个对象

用variables去追踪values,local variable:定义在函数或方法内的变量

用variable pointers去追踪objects,objects通常存在的时间比variable的存在时间长

dynamic nature:在objective-c中指针所指向的对象的类型是不确定的,但正确的方法总是被调用。这是objective-c的动态的特性


比较两个objects的是否相等: 

用 == 决定两个值是否相等

用 == 决定两个指针是否指向同一个object

比较两个objects是否具有相同的data,用isEqual method

比较两个objects那个data大,用compare method


在声明标量变量时通常需要初始化他


但是对于指向某类对象的指针,他有一个默认值nil.表示没有指向任何对象


类用property去封装data,用获取方法对property的data进行操作,可以指定property的attribute: readonly,等,也可以指定获取方法的名字

在初始化方法中直接用instance variable

如果重写了一个property的setter和getter方法,需要手动synthesize  一个instance variable.


用对象与对象之间的关系来管理对object的lifecycle

在objective-c中,一个object存在于memory中,那么至少有一个strong reference指向这个对象


可以用category添加方法到已经存在的类

在ClassName+CategoryName.h中 

@interface ClassName (CategoryName)
 
@end
在imlementation.h中

import ClassName+CategoryName.h


@implementation ClassName (CategoryName) 


@end

在用category添加方法时,要避免方法名与original class的方法名冲突


为了使得代码更具有重用性,用protocol

在interface中

@protocol ProtocolName 〈anotherProtocol>

// list of methods or properties

@end


协议也能够从别的protocols继承


block在invoke之前需要声明和定义



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值