---------------- ASP.Net+Unity开发、.Net培训、期待与您交流!----------------
《OC1-OC概述》学习总结
1、OC是iOS开发的核心语言,主要负责UI界面,在开发过程中也会配合着使用C和C++。
2、OC是一门面向对象的语言,完全兼容C语言。
3、OC用于开发Mac OS X平台和iOS平台的应用程序。
4、Mac OS X是苹果公司为Mac系列产品开发的操作系统,iOS是苹果公司开发的手持设备操作系统。
5、OC没有命名空间机制,取而代之的是类名的前缀。
6、OC的关键字都以@开头。
7、@“Hello”是OC中的字符串对象,而“Hello”是C语言中的字符串。
8、Xcode只有Mac版本,并且自带iOS模拟器。
9、获取Mac OS X系统的途径:虚拟机、黑苹果、苹果设备。
10、2014年6月编程语言排行榜
《OC2-第一个OC程序》学习总结
1、C语言的源文件扩展名为.c,OC的源文件扩展名为.m。
2、main函数是OC程序和C程序的入口。
3、OC不支持垃圾回收,需要编写代码来释放对象所占用的内存。
4、NSLog是一个日志输出函数,它将传入的OC字符串参数输出到控制台并自动换行。
5、NSLog函数中格式符%i表示接收整形数据。
6、#import是一个预处理指令,作用是将文件的内存拷贝到当前所在位置。
7、#import可以自动防止同一个头文件被重复包含。
8、#import <...>表示包含系统自带的文件,#import ”...“表示包含开发人员自己创建的文件。
9、第一个OC程序。
//包含Foundation框架中的Foundation.h文件.
#import <Foundation/Foundation.h>
// main函数是程序的入口,默认返回值为int类型(可省略).
int main()
{
//自动释放池.
@autoreleasepool {
// 调用NSlog函数在屏幕上输出Hello, World!并自动换行.
NSLog(@"Hello, World!");
}
// 默认返回值为0(可省略).
return 0;
}
《OC3-第一个OC的类》学习总结
1、OC是一门面向对象的语言,因此有类、对象、静态方法、动态方法、成员变量等概念。
2、OC一般用2个文件描述一个类,.h文件声明成员变量、方法,.m文件实现.h文件中声明的方法。
3、类的声明使用关键字@interface和@end,类的实现使用关键字@implementation和@end。
4、OC中方法的声明和实现必须以+或-开头,+表示类方法,-表示对象方法,在.h中声明的所有方法的作用域都是public类型,并且不能更改。
5、成员变量的作用域:@public(全局都可以访问)、@protected(只能在类内部和子类中访问)、private(只能在类内部访问)。
6、编译器只会编译.m文件,并不会编译.h文件。
7、类声明文件
// NSObject被声明在Foundation.h中.
#import <Foundation/Foundation.h>
// 声明Student类,继承自NSObject.
@interface Student : NSObject
// 声明结束.
@end
8、类实现文件
// Student被声明在Student.h中.
#import "Student.h"
// 实现Student类.
@implementation Student
// 实现结束.
@end
9、成员变量默认作用域是@protected,成员变量定义必须写在大括号里。
10、方法的返回值和参数类型都需要写在小括号内。
11、在OC方法中,一个冒号对应一个参数,而且冒号也是方法名的一部分。
12、get和set的声明
// NSObject被声明在Foundation.h中.
#import <Foundation/Foundation.h>
// 声明Student类,继承自NSObject.
@interface Student : NSObject {
int _age;
}
// _age的get方法.
-(int)age;
// _age的set方法.
-(void)setAge:(int)age;
// 声明结束.
@end
13、get和set的实现
// Student被声明在Student.h中.
#import "Student.h"
// 实现Student类.
@implementation Student
// _age的get方法实现.
- (int)age {
// 直接返回成员变量_age.
return _age;
}
// _age的set方法实现.
- (void)setAge:(int)age {
// 将参数age赋值给成员变量_age.
_age = age;
}
// 实现结束.
@end
14、可以采用对象→成员变量的方式访问公共变量。
15、子类可以调用父类的方法,alloc、init、new方法都是父类NSObject的。
16、调用静态方法new快速创建一个对象的方式:[类名 new]。
17、调用对象的release方法可以释放此对象。
18、创建对象需要做两件事:给对象分配存储空间、给对象初始化。
《OC4-点语法》学习总结
1、通过对象名.成员变量名的方式来访问对象的公共成员变量,称为点语法。
2、传统的OC中调用get方法和set方法时用方括号。
3、stu.age不是代表直接访问成员变量age,编译器会将stu.age = 10自动转换成[stu setAge:10]。
4、编译器会将age = stu.age自动转换成age = [stu age]。
5、OC点语法的本质是方法调用,不是直接访问成员变量。
6、为了更好的区分点语法和成员变量访问,一般在定义成员变量时会以下划线开头。
7、set方法的错误实现,将会导致程序出现死循环。
// set方法错误实现.
- (void)setAge:(int)age {
self.age = age;
}
// 编译后.
- (void)setAge:(int)age {
[self setAge:age];
}
8、set方法的正确实现。
// set方法正确实现.
- (void)setAge:(int)age {
s_age = age;
}
《OC5-构造方法和description方法》学习总结
1、用来初始化对象的方法,称为构造方法。
2、自定义构造方法的方法名一般都会以init开头,返回值为id类型,id可以代表任何OC对象。
3、构造方法实现。
#import "Student.h"
@implementation Student
// 构造方法实现.
- (id)initWithAge:(int)age {
// 先调用父类的构造方法init,然后将返回值赋值给self,接着判断self是否为nil.
if (self = [super init]) {
// 给成员变量_age赋值.
_age = age;
}
// 返回初始化过后的self.
return self;
}
@end
4、构造方法调用。
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
// 首先调用父类的alloc方法分配内存,然后调用构造方法initWithAge:,并传入20作为参数.
Student *stu = [[Student alloc] initWithAge:20];
// 销毁stu对象
[stu release];
}
return 0;
}
5、NSLog函数可以输出任何OC对象,使用格式符%@。
6、NSLog函数发现%@时会调用这个对象的description方法,并将description方法返回的字符串代替%@的位置进行输出。
7、description方法默认返回<类名:对象的内存地址>。
8、重写description方法会覆盖默认的description方法。
9、静态方法返回的对象,不需要手动释放。
10、在description方法中同时使用%@和self,将会导致程序出现死循环。