1 | ObjC的语法主要基于smalltalk进行设计的(乔布斯真的叼啊) |
类定义
1 | @interface MyClass:NSObject |
执行MyClass.m文件,如下所示1
2
3@implementation MyClass
// 类方法定义
@end
静态方法和类方法
Objective C中声明的方法如下所示:
-(返回类型)方法名:(变量1类型) 变量1 :(变量2类型)变量2;
静态方法和类方法的区分就是函数前 “-“和”+” 的区别
静态方法:
+(void)simpleClassMethod;
调用:1
[MyClass simpleClassMethod];
类方法:
-(void)simpleInstanceMethod;
调用:1
2MyClass *objectName = [[MyClass alloc]init] ;
[objectName simpleInstanceMethod];
Objective C的重要数据类型
序号 | 数据类型 |
---|---|
1 | NSString字符串 |
2 | CGfloat 浮点值的基本类型 |
3 | NSInteger 整型 |
4 | BOOL 布尔型 |
在ObjC中的基本数据类型除了C语言中的char、int、float、double之外还有:
1.BOOL类型,包含两个值YES和NO,其实ObjC中的布尔类型就是整数1和0;
2.id类型,是一个对象类型,可以表示所有对象;
3.NSString是Fundation框架中定义的字符串类型, 要加一个”@”
NSString *str=@”Hello,World!”;
格式化时也使用 “%@” 格式NSString类型
一些知识点
1.@autoreleasepool是ObjC的关键字,它的作用是对包含在这个关键字后面大包括内的程序会自动进行内存回收,不需要开发人员手动释放无用的对象
1
2
3@autoreleasepool {
....
}
2.ObjC中没有命名空间(C#)或包(Java)的概念,那也就是说在同一个应用中不能同时存在两个完全相同的类名,通常情况下我们通过前缀加以区分,例如在ObjC中的NSString、NSLog中的NS就是前缀
NS其实是NeXTSTEP缩写,是乔布斯离开苹果后在NeXT公司所开发的系统,这个操作系统在当时虽然没有获得广泛认同,但是却为后面Mac OX奠定了基础。