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”)?@“一样”:@“不一样”);

最新文章

  1. ASP.NET 中的 Async/Await 简介
  2. quartz CronExpression表达式
  3. TLogger一个D7可用的轻量级日志
  4. jquery mobile tabs
  5. 求两条直线相交点 AS3代码
  6. Ionic页面加载前 ionic页面加载完成 ionic页面销毁执行的事件
  7. 仿QQ的底部选项
  8. Spring MVC 原理小结
  9. Java输入输出流(一)——常用的输入输出流
  10. 水题:HDU 5119 Happy Matt Friends
  11. nodejs compressor
  12. 使用PageHeap.EXE或GFlags.EXE检查内存越界错误
  13. Postgres的tuple的组装
  14. python读取文本文件数据
  15. java内部类深入详解 内部类的分类 特点 定义方式 使用
  16. 【Linux优化】Linux安装之后的优化
  17. android 相对布局例子代码
  18. Storm集成Kafka的Trident实现
  19. Leetcode题库——8.字符串转为整数【##】
  20. Word Ladder II Graph

热门文章

  1. C#在线更新程序[下载程序、解压缩程序、控制台程序]
  2. C#多线程学习之(五)使用定时器进行多线程的自动管理
  3. S1:运算符
  4. 一模 (5) day1
  5. jquery api调用
  6. hashmap和hashtable,arraylist和vector的区别
  7. Map-Reduce的工作机制
  8. julia与python中的列表解析.jl
  9. 毕向东Java基础:day09_3-4
  10. 团队SCRUM会议(第一次)