NSLog 加\n 则\n不起作用
nil 字符串初始化时的赋值
栈区 :存储有指针
堆区:存储有对象
BSS:没有初始化的全局变量和静态变量
数据区:已经初始化的全局变量和静态变量
代码区:存储有方法
地区从下往上以此增高的
先找到指针,根据指针保存的地址找到对象,然后根据对象找到属性,修改其值,
对象存储在堆区,指针存储在栈区
每个对象内部都有一个隐藏的isa指针,指向位于代码区的方法,也就是当前对象所属的类,这个类中有方法。
对象去调用属性:1.通过对象名找到对象 2.赋值
对象去调用方法:1.通过对象名找到对象 2.再通过地址找到ISA指针 3.找到方法
NSString是处理字符串的核心类
1.可以创建多种字符串:空的字符串,指定字符串(常用),某种格式的字符串
2.如何计算长度:NSString 有一个对象方法叫length,返回值是NSUInteger(无符号的长整型)
NSUInteger length = [str length];
计算数组str的长度,其中:
纯中文,一个中文长度是1
纯英文,一个英文长度是1
中英文混合时,长度都是1
#pragma mark 预处理指令 ,用来给代码分组
#pargma mark — 会在提示的时候有一条横线分割 “—”后面不要加空格 否则分割线会多一条
可以快速找到想要的代码块
常见错误
生命与实现,不能嵌套包含
只有声明,没有实现,而且代码中不会出现报错提示
漏写@end
先实现后声明的情况会报错
实例变量没有写在{ }里
方法不能嵌套
声明时不能对变量进行赋值
谁调用了方法,则方法里若无指定的变量值就是谁的
NSString new 与 @“”创建的字符串都是什么都没有,输出的时候什么都不输出
NSString * str = [NSString stringWithFormat:@”%d.jpg”];
按照某种格式生成字符串
多文件开发:方便开发,方便合作
定义结构体为属性时可通过:
1. 对象名—>对象中的结构体名.结构体变量名
2. 对象名—>对象中的结构体名=(结构提名){初始化的变量}
3. 结构体 结构提名={ 初始化的变量 }; 对象名—>对象中的结构提名=结构提名
如:dates * time=[dates new];
time->dat.day=10;
time->dat.month=3;
time->dat.year=1995;
date oneDay ={1995,6,16};
time->dat=oneDay;
time->dat=(date){1995,6,16};