A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 仰望星空的猪 中级黑马   /  2015-11-23 19:18  /  2394 人查看  /  21 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 仰望星空的猪 于 2015-11-23 19:23 编辑

1     import 引入头文件 可以防止重复包含 include 需要预处理指令。
2     NSLog    参数的是NSString 类型对象
printf  参数是字符串指针。

NSLog  可以自动换行  输入的内容有日期和项目名称
NSString 是OC的特有用来定义字符串C中不支持
NSLog  可以格式化输出  %@ 打印字符串  但不支持C%s
                C中不能使用%@打印字符串。
3     @符号的使用
@“xx” 表示xx是OC中的一个字符串。
@标识符  表示OC中的关键字
4     OC中的注释和C的相同
5     OC可以向下兼容C可以使用C中的函数调用方法和C 相同。
6     OC和C差异
1) 源文件对比  
C中有.c .o .out .h
OC中 .h .m

2)基本数据类型
       OC添加了一个 bool类型和block类型。
       指针数据类型class(类)  id
       特殊类型   SEL  nil(空对象)
3) 增强了for 快速变量数组和字典等集合。
4) 方法定义
5) Boolean 作用 判断逻辑值 0 假  非0真
存储的值 true 1   false 0
BOOL 类似Boolean  YES 1   NO 0
6) 添加异常捕捉机制。
7     面向对象
面向过程: 强调的是功能行为
                             关注的解决问题需要哪些步骤
面向对象:将功能封装进对象,强调具备了功能的对象
                            关注解决问题需要哪些对象
                            面向对象是基于面向过程的。
特性:封装 继承 多态
       类:是具有相似内部状态和运动规律实体的集合。(名词提炼法)
               类的构成:类型  属性 和方法(行为或对属性中的数据进行操作的方法)
        对象:对类的相同特征属性和运动规律的提取。图纸
8     类的声明(.h)和实现(.m)
方法:相当于C中的函数。
              +动态方法
-      静态方法  类似java中static定义的方法
声明(@interface):声明类的属性和方法
@interface 类名:父类 {
       成员变量      //成员变量声明
}
方法声明
@end    //以@end 结束该类的声明

@interface Person:NSObeject {
       @public;
NSString  *name;      //成员变量声明
       int age;
}

@end    //以@end 结束该类的声明

实现(@implementation)实现声明中定义的方法
       @implementation  类名
              声明方法的实现
@end
9     对象的创建
OC中对象创建时都是创建的对象指针
类名 *对象名=[类名 new];
       Person  *person =[ Person new];
       new 的作用:向计算机申请内存空间  给成员变量赋初值 返回申请空间的首地址。
10 成员变量的访问  
person->name=@“xiaoming”; //成员变量赋值
person->age=15;
点语法
person.name=@“xiaoming”; //成员变量赋值
person.age=15;

NSLog(@”name:%@ \t age:%d”, person->name, person->age);//成员变量的使用。
10  方法的定义、实现和调用
方法前 + 表示动态方法 – 表示静态方法
声明在@interface内   实现在@implementation内
1) 无参无返回值对象方法的声明
-(void) 方法名;
无参无返回值对象方法的实现
-(void) 方法名{
          代码块
}
方法调用 [对象 方法名];

2)   有参无返回值对象方法的声明
参数之间可以加一些修饰词。
-(void) 方法名 : (参数类型) 参数名 :(参数类型)参数名 ;
有参无返回值对象方法的实现
-(void) 方法名 : (参数类型) 参数名1 :(参数类型)参数名2  {

}           注意  每个参数之前有冒号分隔  冒号算方法名的一部分
有参无返回值对象方法的实现
方法调用 [对象 方法名:实参1:实参2];

//
//  main.m
//  1 类的声明、实现和调用
//
//

#import<Foundation/Foundation.h>

@interfacePerson :NSObject
{
    NSString *_name;
    int _age;
}

//无参无返回值对象方法的声明
-(void)run;
// 有参无返回值对象方法声明
-(void)run:(NSString *)name andSpeed :(int)speed ;
@end

@implementationPerson
//无参无返回值对象方法的实现
-(void)run{

    NSLog(@"person is running");
};
// 有参无返回值对象方法实现
-(void)run:(NSString *)name andSpeed :(int)speed {
    NSLog(@" %@ is running by %dkmph",name ,speed);


}

@end

intmain(int argc, const char * argv[]) {
    @autoreleasepool {

        Person *p= [Person new];
        //无参无返回值对象方法的调用
        [p run];
        // 有参无返回值对象方法调用
        [p run:@"xiaoming"andSpeed:100];
    }
    return 0;
}

11  对象的存储细节
创建对象  Person *p =[Person new];
代码区:存放了类的成员变量及对象方法
堆区:new生成的对象后,堆区中存放了类的成员变量及其初值。
          还有一个 _isa指针存放代码区的类的首地址。
               并将该实例对象的首地址返回。
栈区:Person *p 之后,栈区存放了指针变量p  并接收new返回的实例对象地址。
调用函数时 先找堆区的实例对象_isa 指针 通过_isa指针找代码区的代码。
12  #pragma mark 组名
#pragma mark – 组之间加一条横线.
13  函数和对象方法对比
对象方法
1)对象方法的声明只能写在 @interface @end之间,对象方法的实现只能写在@implementation @end之间。
2)对象方法都以 – 开头 类方法以+开头
3)对象方法只能由对象来调用,类方法只能由类调用
4) 对象方法归类或者对象所有。

函数
1) 函数属于整个文件,可以写在文件任何位置。
2) 函数不存在隶属关系
3) 可以直接调用
4) 不可以访问对象中的成员变量。
14  常见错误
1) 声明和实现不能嵌套
2) 声明和实现必须同步
3) 成员变量必须写在{}内
4) 成员变量声明时不能赋值。
5) 成员变量不能使用static



21 个回复

倒序浏览
速度真快啊~感谢分享
回复 使用道具 举报

嘿嘿  几天的一起发表 的
回复 使用道具 举报
cxk 中级黑马 2015-11-24 11:23:15
板凳
看着还不错的样子哦,继续努力,我也要整理出属于我自己的笔记。
回复 使用道具 举报
谢谢,撸主分享
回复 使用道具 举报
收藏      
回复 使用道具 举报
cxk 发表于 2015-11-24 11:23
看着还不错的样子哦,继续努力,我也要整理出属于我自己的笔记。

嗯 努力就有希望
回复 使用道具 举报
heimaye 中级黑马 2015-11-24 14:02:27
8#
这个笔记,先记下,大神膜拜了,有收徒弟吗
回复 使用道具 举报
heimaye 发表于 2015-11-24 14:02
这个笔记,先记下,大神膜拜了,有收徒弟吗

大神??  你也是新入门的吧  跟我一样
回复 使用道具 举报
你这流程已经走到哪里了啊!写个流程攻略吧!小神
回复 使用道具 举报
爱尘iPhone 发表于 2015-11-24 15:26
你这流程已经走到哪里了啊!写个流程攻略吧!小神

开始做入学考试了  等我过了再说吧  哈哈
回复 使用道具 举报
printf("%s,%d",per.name,per.age);
回复 使用道具 举报
楼主是上的基础班还是自己学习的,学了多长时间啊?
回复 使用道具 举报
进来看看,不错
回复 使用道具 举报
顶一个!
回复 使用道具 举报
cxk 中级黑马 2015-11-25 22:57:03
16#

谢谢你哦  我会加油的
回复 使用道具 举报
楼主这个学习方法很不错哈,向楼主学习了!希望继续更新

点评

恩 共同进步  发表于 2015-11-26 11:31
回复 使用道具 举报
面试用的到

点评

有用就好  发表于 2015-11-26 17:54
回复 使用道具 举报
支持,加油支持,加油支持,加油
回复 使用道具 举报
马上学OC 楼主笔记不错。。学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马