[Objective-C A]-知识点锦集
2.retain
O-C内存管理和点语法
    1>OC内存管理正常情况要使用大量的retain和relrese操作
    2>点语法可以减少使用retain和release的操作
3.Runloop
编译器对于@property中的retain展开是不一样的
主要是要释放上一次的值,增加本次计数器
在dog.h中声明的:
@property(retain)Dog *dog;
展开后为:
-(void) setDog:(Dog *)aDog;
-(Dog *)dog;
5.@synthesize编译器如何实现展开
  在dog.m中实现:
  @synthesize dog=_dog;
  展开后为:
  -(void) setDog:(Dog *)aDog{
    if(_dog!=aDog){
    [_dog release];
    _dog=[aDog retain];
    }
}
  -(Dog *)dog{
    return _dog;
  }
6.dealloc需要注意内容
  dealloc必须要释放dog(retain)
  在dog.m中
  -(void) dealloc
  {
    self.dog=nil;
    [super dealloc];
  }
7.copy属性的主要作用
  copy属性是完全把对象重新拷贝了一份,计数器从新设置为1,和之前拷贝的数据完全脱离关系。
  @property(copy) NSString* str;
  //表示属性的getter函数
  -(double) str
  {
    return str;
  }
  //表示属性的setter函数
  -(void) setStr:(NSString *)newStr
  {
    str=[newStr copy];
  }
8.assign,retain,copy
  1、foo=value;//简单的引用赋值
  2、foo=[value retain];//引用赋值,并且增加value的计数器
  3、foo=[value copy];//将value复制了一份给foo,复制后,foo和value就毫无关系
[Objective-C A]-知识点锦集的更多相关文章
- C/C++中一些不太注意到的小知识点--[锦集]
		C/C++中一些不太注意到的小知识点--[锦集] C/C++小知识点--[锦集] "="和"<=" 的优先级 1.( (file_got_len = re ... 
- 【干货分享】前端面试知识点锦集04(Others篇)——附答案
		四.Others部分 技术类 1.http状态码有哪些?分别代表是什么意思? (1).成功2×× 成功处理了请求的状态码.200 服务器已成功处理了请求并提供了请求的网页.204 服务器成功处理了请求 ... 
- 【干货分享】前端面试知识点锦集01(HTML篇)——附答案
		一.HTML部分 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层分别是:HTML.CSS.JavaScript作用:HTML实现页面结构,CSS完成页面的表现与风格 ... 
- 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案
		三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是 ... 
- 【干货分享】前端面试知识点锦集02(CSS篇)——附答案
		二.CSS部分 1.解释一下CSS的盒子模型? 回答一:a.标准的css盒子模型:宽度=内容的宽度+边框的宽度+加上内边具的宽度b.网页设计中常听的属性名:内容(content).填充(padding ... 
- HTML5易漏知识点锦集
		本文通过对w3schoolHTML5基础教程,整理出比较常见的却又容易遗忘或者忽略的HTML5相关知识点.本文的标题顺序与w3school中的HTML5基础教程标题顺序保持一致.适合翻阅和复习. 1. ... 
- 前端面试知识点锦集(JavaScript篇)
		目录 1.谈谈你对Ajax的理解?(概念.特点.作用) 2.说说你对延迟对象deferred的理解? 3.什么是跨域,如何实现跨域访问? 4.为什么要使用模板引擎? 5.JavaScript是一门什么 ... 
- redis 锦集
		redis 锦集url:http://blog.csdn.net/lqadam/article/category/7479450 1. redis 排序 2.redis 慢查询.位数组和事务 3.re ... 
- iOS--碎片知识锦集
		知识锦集day01 1.UIView的两个方法: sizeThatFits和 sizeToFit 官方文档上说: - (CGSize)sizeThatFits:(CGSize)size; // ... 
随机推荐
- 杭电oj 1001
			#include<iostream> using namespace std; int main() { , sum; while (cin>>n) { sum = ; // ... 
- CodeForces - 524F  And Yet Another Bracket Sequence
			题面在这里! (会考完之后休闲休闲2333) 可以发现,如果把一个串中"()"自动删除,最后剩的一定是形如"))))....))(((..((("这样的串,然后 ... 
- 【置换群】poj3270 Cow Sorting
			并不应该叫置换群……只是用到了置换而已,并没有群. 题解看这个吧,我就不写了:http://www.cnblogs.com/kuangbin/archive/2012/09/03/2669013.ht ... 
- GitHub 给已存在的仓库增加开原协议LICENSE
			如果你创建仓库时没有设置开原协议LICENSE,后续可以按下面方法增加开原协议LICENSE. 1.点击Create new file,如下图 2.文件名填LICENSE.md,右边就会出现choos ... 
- 调整Chrome中文字体为雅黑
			几天试了一下Chrom发布的Chrome 37,感觉所谓的Direct2D渲染还是有些效果的,但这只体现在英文上,中文的宋体还是非常的不舒服,便试着将其替换成了雅黑,这里介绍一下相关方法. Chrom ... 
- Eclipse环境安装rust
			参考 https://rustdt.github.io/ https://github.com/RustDT/RustDT/blob/latest/documentation/UserGuide.md ... 
- Android网络通信框架LiteHttp2.0 开篇简介和大纲目录
			本帖最后由 移动天宇 于 2015-10-26 10:42 编辑 LiteHttp2.0很多东东焕然一新,旧的能力也得到增强,没有使用的同学来了解一下吧. Android网络框架为什么可以选用lite ... 
- 解决kylin报错:Failed to create dictionary on <db>.<table>, Caused by: java.lang.IllegalArgumentException: Too high cardinality is not suitable for dictionary
			报错信息: 2017-05-13 15:14:30,035 DEBUG [pool-9-thread-10] dict.DictionaryGenerator:94 : Dictionary clas ... 
- if __name__=='__main__"在有的virtualenvs环境下执行成功,在有的环境下执行失败?
			我的项目是erebus,所以默认的python解释器位于virtualenvs下的erebus,但是这个执行环境执行某个py文件总是失败,换其他的执行器执行反而没有问题: 排查了半天,才发现erebu ... 
- java中各种数据类型占用字节数
			1字节(Byte)=8bit java的基本类型 类型 所占字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 String中字母和汉字所占字 ... 
