IOS 学习笔记(二)object-c理解

时间:2022-04-28 05:32:40

1。函数前的(-)表示常规成员函数,而(+)表示静态成员函数,类似于C++的static


2。@interface 是声明类名,@implementation是声明对类的实现


3。id 可以理解为类指针,可以将类地址直接赋予id。调用某一类通用接口。如:a类,b类都有print方法,则付给id后,不需要转换类,直接调用其print方法。


4。@protocol 类似于java的interface,类实现某个protocol的时候,采用以下方式@interface Class <Protocol1,Potocol2>,后面跟@optional表示方法可选择性实现,后面跟@required预编译指令:表示必须强制实现的方法。


5。retain 和realease 类似于接口中的addRef 和  release


6。@property预编译命令的作用是自动声明属性的settergetter方法,@synthesize也是一种新的编译器功能,表示创建该属性的访问器”,两者要一起使用。


7.IBOutlet

  • 如果一个变量在类中被定义为了IBOutlet那么你无需对其进行实例化,xib载入器会根据对应的声明类型对其初始化。
  • 如果一个变量在类中被定义为了IBOutlet那么你必须负责将其释放。xib载入器不会帮忙的… …

*切忌不要初始化两回,内存会溢出,而且对象锁定也会出错。

声明IBOutlet之后,可以在InterfaceBuilder中看到。

8.IBAction:

     操作是控制器类中的方法。它们也是通过特殊关键字IBAction声明的,该关键字告诉Interface Builder,此方法是一个操作,且可以被某个控件触发。通常,操作方法的声明应如下所示:

- (IBAction)doSomething:(id)sender; 

该方法可以在InerfaceBuilder中看到,并与空间中的action进行绑定。(需要手动,非自动)

 

9.Object-c 是兼容 c和c++的,c还有c++的函数以及类等可以直接在object-c中使用,使用方法跟c还有c++原始语法一致。但是c和c++的函数声明及其实现,以及c++的类的声明及其实现,必须在object-c的关键字之外,如@interface -- @end 和@implementation--@end