oc小总结
oc的一些总结
下面几个问题是oc中需要掌握的内容
1.如何掌握一个方法的方法名
2.一个对象调用一个autorelease,什么时候释放
3.字典和数组,集合都有什么特点
4.如何定义一个类
5.类目是什么
6.什么是对象
7.属性的属性,(assgin )
8.不要再setter中调用自己,负责会死循环
8.可变字符串改变的还是自己
9.字典里面key必须是唯一的,新key会覆盖旧值
10.类方法里不能使用实际变量
11.dealloc什么时候调用,注意事项
12.内存管理
13.初始化方法是做什么用的
14.怎么去使用block变量
,掌握声明定义
15.属性方法的setter内部实现
16.便利构造器怎么写
17.如何处理autorelease对象
一些小的知识点
id是一个指向任意对象类型
"+" +方法即类方法不能调用自己类的实例变量
#import 将一个文件的全部文件内容拷贝到当前文件
私有不会拷贝过去,因为import的时.h文件而不是.m文件
类目中一班添加没有的方法,而不是重写,重写一般是在子类中重写
输出字典的时候key = value
类的初始化作用:在创建对象后,对这个刚刚创建的实例对象进行初始化操作,即做一些默认操作
堆区是手动管理内存
栈区是系统管理内存
BLOCK的无返回值声明:void (^block)(NSString *str);
NSString *testObject = [[NSData alloc] init]; testObject 在编译和运行时分别是什么类型
编译时是NSString类型 运行时是NSData类型
协议的property声明用什么属性?为什么?
协议是多个类分享的一个方法列表,在协议中所列出的方法没有响应的 实现, 有其他人来实现
协议的property声明用assign特性,因为要防止对象和其他代理对象之间互相应用,导致无法释放内存
在block内部要改变外部变量时,需要使用_block关键字
扩展一个累的功能有几种途径?有什么区别?
类目:类目可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除原有方法,但是无法添加实例变量
延展:延展可以同时添加实例变量和方法,而且添加的方法必须实现,可以视为一个私有的类目
协议:协议是多个类共享的一个发方法列表,在协议中所列出的方法没有响应的实现
继承:不但可以添加实例变量和方法,也可以重写原有类的方法
用一个autorelease 必须在@autoreleasepool{ }中使用
请完成声明一个返回值是bool类型,并且带两个字符串对象的BLOCK类型变量
BOOL (^ablock)(NSString *str1 , NSString *str2);
为BLOCk变量赋值,使该变量具有判断两个字符串对象是否相等的功能;并使用该BLOCK变量测试两个字符串@“Abc”,@“abc”是否相等
BOOL (^ablock)(NSString *str1,NSString *str2);
ablock = ^(NSString *str1,NSString str2)
{
if([str1 isEqualTOString:str2])
{
return YES;
}
return NO;
}
NSLog(@“%@“,ablock(@“Abc”,@“abc”)?@“一样”:@“不一样”);