黑马程序员--OC自学笔记---02对象存储细节、NSString简介、多文件开发

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.   对象的存储细节

Person *p = [Person new];

1)[Person new]这句话实现了:

①申请内存空间

② 给实例变量初始化

③返回空间的首地址

2)①申请的空间在内存的那个区域?

New的时候,申请的空间在内存的堆区(程序动态分配的内存空间)

初始化:基本数据类型为0,OC字符串类型为null

②实例变量保存在什么地方?

实例变量在堆区,p(指针变量)存放在栈区

③对象方法保存在什么地方??

代码区

④为什么使用[p run];就可以调用方法了?如何调用的

首先找到p对应的堆区的空间,然后找到里面的_isa指针,在找到_isa指向的代码区的空间,然后找到该空间中找方法


2.   创建多个对象时的内存存储情况:

代码区中代码只有一份,且只有在第一次创建对象时保存到代码区。


3.   #pragma mark指令的使用

功能:简单来说就是对代码的分组,方便代码查找和导航用的。

它能告诉xcode编译器,要在编辑器窗格顶部的方法和函数弹出菜单中将代码分隔开。


注意:#pragma mark –这个分割线后面不能有空格,有空格显示出来的是两条线

4.   函数和对象方法的区别(理论)

对象方法

1)        对象方法的实现只能写在 @implementation...@end中,对象方法的声明只能写在@interface...@end中间

2)        对象方法都以-号开头,类方法都以+号开头

3)        对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样使用

4)        函数属于整个文件,可以写在文件中的任何位置,包括@implementation...@end中,但写在@interface...@end会无法识别,函数的声明可以在main函数内部,也可以在main函数外部

5)        对象方法归类\对象所有(归属感)

函数:

1)        所有的函数都是平行的

2)        函数不存在隶属关系

3)        使用的时候可以直接调用

4)        不可以访问对象中的成员变量

5.   常见的错误

1)        @interface…@end和@implementation…end不能嵌套包含

2)        OC是弱语法,可以只有@implementation,但实际开发中应该杜绝这样写


3)        只有类的声明,没有类的实现是不可以的,类的声明和实现要成对出现

4)        很容易忘记的一个是@end,不要忘了写

5)        两个类的对象声明顺序可以打乱,但是同一个类的声明必须在实现前边

6)        成员变量必须写在{}里面

7)        方法的声明不可以写在{}里面

8)        在声明时不能对类的成员变量进行初始化,请注意成员变量不能脱离对象而独立存在

9)        方法无法像函数那样调用,必须用[对象名  方法名];

10)     成员变量和方法不能用static等关键字修饰,不要和C语言混淆

11)     类的实现可以写在main函数后面,在使用之前只要有声明就可以

12)     使用try---catch----finally来捕获异常

6.   NSString的介绍及用法

NSString是OC中核心处理字符串的类之一

1)        创建常量字符串,注意使用“@”符号

NSString *astring = @”This is a String!”;

2)        创建空字符串,给予赋值

NSString *astring = [NSString new];

astring = @”welcome to China!”;

3)        格式化创建字符串

NSString *string = [NSStringstringWithFormat:@”xxx%02d”,i];

4)        用一个已经存在的字符串来创建一个新的字符串

NSString *s1 = [[NSStringalloc]initWithString:astring]

7.   NSString字符串长度计算方法

1)        通过调用NSString类的对象方法length

NSString *s1 = @” String!”;

[s1 length];求字符串的长度

2)        OC中字符串一个中文或一个英文都是一个字符

3)        C语言中一个汉字占3个字节

8.   OC中的多文件开发

1)   为甚么使用多文件

通常把不同的类放到不同的文件中,每个类的声明和实现分开,声明写在.h文件中,实现写在相应的.m文件中,类名是什么,文件名的前缀就是什么

9.   多文件实现的步骤

1)        创建类的声明文件.h文件

2)        创建类的实现文件.m文件

3)        可以创建一个cocoa class文件,就把.h和.m文件都创建好了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bright1st

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值