一、#include和#import的区别
1.#import是#include指令的增强版,能实现include的功能;
2.#include指令单独使用,可能会造成重复包含,要防止重复包含,用预编译指令配合才能防止重复包含;
3.#import增强的点就是单独使用这个指令的时候,不会造成重复包含。
二、""和<>的区别
1.<>-->包含系统的同文件-->文件搜索顺序--先从编译器文件夹下-》系统文件夹下-》查找失败。
2.""--》引用用户的文件--》文件搜索顺讯--先从当前文件夹下--》编译器文件夹下--》系统文件夹下--》查找失败。
三、NSLog()
c语言中printf()的增强版
作用:向控制台输出打印数据
增强点:打印时间,标题,进程号,线程号,多做了一个自动换行的工作
四、字符串变量:NSString
NSString *str = @"我爱你这个世界!";
其中str中存储这个字符串的地址,打印时NSLog(@"%@",str);即可打印出字符串。(注意不可以用%s)
五、注释及@符号的使用
1.@的使用方法
1)@"perfect"这个符号表示将一个C的字符串转化成OC中的字符串对象NSString。
2)@标识符---OC中的关键字大都是以@开头的,比如@interface,@end。
六、OC中的数据类型
基本数据类型
数值型
整型类型
浮点型
字符型(char)
布尔型(BOOL)
字面常量值是YES或者NO
(boolean-->true\false)
空类型(void)
Block类型
代码块数据类型
指针数据类型
类(class)
id类型
动态对象类型、万能指针
特殊类型
SEL
选择器数据类型
Nil
--->NSObject * OC中的对象类型
七、类的声明和实现
类
.h是类的声明文件:类的声明使用关键字@interface和@end
.m是类的实现文件:类的实现使用关键字@implementation和@end
方法
-->方法的声明和实现,都必须以+或者-开头
+表示类方法(静态方法)
-表示对象方法(动态方法)
-->再.h中声明的所有方法作用域都是public类型,不可更改
成员变量(实例变量\属性)
@public全局都可以访问
@protected只能在类内部和子类中访问
@private只能在 类内部访问
@interface Person : NSObject
{
//声明属性变量的时候,名字一定要加下划线
//描述人的属性
//名字
NSString * _name;
//年龄
int _age;
//体重
float _weight;
}
//声明吃方法
-(void)eat;
//声明跑方法
-(void)run;
//声明呼吸方法
+(void)breath;
@end
//对人
类做一个实现类
@implementation Person
//实现吃方法
-(void)eat
{
NSLog(@"吃了一个大西瓜!");
}
//声明跑方法
-(void)run
{
NSLog(@"围绕操场跑了五十圈!");
}
//声明呼吸方法
+(void)breath
{
NSLog(@"深呼一口气!");
}
@end
八、访问对象成员属性
//成员属性前要加@public才能访问
初始化-->Person * zhangsan = [Person new];
访问---->NSLog(@"name--%@,age--%d,weight--%.2f",zhangsan->_name,(*zhangsan)._age,zhangsan->_weight);
九、无参方法声明实现及调用
对象方法以-开头,如-(void)eat;
对象方法只能以对象来调用;
对象方法中可以访问当前对象的成员变量
调用格式-->[对象名 对象方法名]
类方法以+开头,如+(void)breath;
类方法只能类来调用
类方法不能访问成员变量
[类名 类方法名]
十、有参方法声明实现及调用
如-(void)eat:(NSString)food:(int)number;
注意:多参数之间用冒号隔开;
-->-(void)run:(int)step andWith:(NSString
*)place;
以上属于一个对象方法,红色字体是一个整体.