杂记---不定期更新

1.data source也是一种特殊的delegate,data source负责传输数据给View例如data、at、count等,而delegate负责处理View的did、should、will等问题,View把需要的数据信息或者事件信息传输给dalegate,dalegate则负责回复这些信息。

2.Block当中不能修改局部变量的值,在block中,局部变量都是只读的,比如在block外部有一个BOOL value = YES;,如果在block内部修改value的值,这就是非法的,编译器会报错。当然,有一种办法可以进行读写,就是在变量前面加上两个下划线和block,如:__block BOOL value = YES;,这样就可以在block当中进行该变量的读写了。

原理是如果声名了__block,编译器就会生成一段代码将value从栈(stack)移到堆中(heap),同时编译器会有一个强指针指向block中的每一个变量,确保它不会在block执行完毕前就离开堆,当执行完block的时候,编译器将信息拷贝回堆当中,然后再移回栈当中,同时强指针会在block goes out of scope*1之前一直存在。

3.如果block不需要参数,参数的括号可以直接省去,如果返回值再return的时候可以直接看出来,比如return [MyClass isKindOfClass:...];,这种类型的编译器会自动完成返回值,所以block的返回值类型也可以省去。



突然感觉学的好像有点快了,开始回头看以前知识的详细解释。

*1:英语不是很好,我的理解是block也是有作用域的,比如[UIView animateWithDuration:NSTimeInterval animations:^(void)animations]这个方法,再执行完该方法的时候可能block就已经失效了,block的作用与就是这一条语句,当然这是我的猜测,如有了解的请务必纠正我。

时间: 2024-11-14 19:55:29

杂记---不定期更新的相关文章

基于C/S架构的3D对战网络游戏C++框架 _【不定期更新通知】

由于笔者最近有比赛项目要赶,这个基于C/S架构的3D对战网络游戏C++框架也遇到了一点瓶颈需要点时间沉淀,所以近一段时间不能保证每天更新了,会保持不定期更新.同时近期笔者也会多分享一些已经做过学过的C++.服务器端开发.游戏开发相关的内容给大家(因为这些内容已经熟悉也积攒了一定量现有的笔记所以整理成博客会相对轻松些).感谢大家支持,深鞠躬.过两天笔者要去上海参加C++大会,回来后会把参会感悟也分享给大家的^__^.喜欢技术人的纯粹,没有等级之分,希望我们能一路一起进步,共同成长. 基于C/S架构

node.js项目开发问题集锦(不定期更新,随时把开发过程中遇到的问题加上)

1.用express开发站点时,怎么定义通用的头部和尾部 方案1:用类似asp时代的include添加,如ejs模板: <% include ../header.ejs %> <h1 class="page-header"> 这里是内容. 注:..表示header.ejs在上一级目录,ejs扩展名可以去掉,直接写:include ../header </h1> <% include ../footer %> 方案2:用类似于MVC的lay

adt-bundle和android studio下载地址(不定期更新)

因为众所周知的原因,android官网打不开.在这里公布IDE地址,可以用迅雷等软件直接下载. adt-bundle-windows-x86: http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip adt-bundle和android studio下载地址(不定期更新),布布扣,bubuko.com

leran html5(不定期更新)

采用Html5技术编写 了解HTML5请到:http://baike.baidu.com/link?url=4437QJzcpocoFR42wQf6DDOk-7Wj3_zrA7ft_ces0keEVjiCey2C4PyMKmiTt8Mg9YI2hWC7CXBxV7oLbT3Rg_ 开始学习吧! Learn Html5   By C.N.Chinese 1.伪元素 Home About News Develop Others style: #nav{ display:block;width:600

那些Java IDE工具(不定期更新)

一.Eclipse Eclipse是一个市场占有率很高的Java IDE工具. 官网地址:http://www.eclipse.org/ 下载地址:http://www.eclipse.org/downloads/ 二.... 那些Java IDE工具(不定期更新)

【不定期更新】noip复习(或许有误请指正)

一.基本算法 2.二分查找 void find(int l,int r){ if (l>r || a[l]>x || a[r]<x) return; int mid = (l+r) >> 1; if (a[mid] == x){ if (mid < pos)pos=mid; if (a[mid-1] == x) find(l, mid-1); if (a[mid+1] == x) find(mid+1, r); return; } if (x > a[mid])

appframework学习--appframework开发常见问题及解决方法(不定期更新)

1.页面跳转错误:Uncaught TypeError: Cannot read property 'afCSS3AnimateId' of undefined 原因:data-defer=""  跳转路径不正确 解决:路径正确即可 2.程序正在启动的圈圈一直 原因:转id冲突,出现重名id 解决:id冲突,出现重名id appframework学习--appframework开发常见问题及解决方法(不定期更新)

LDD和scull相关各种结构体的故事(学习笔记 不定期更新)

LDD和各种结构体的故事 struct scull_dev     位置:scull/scull.h struct scull_dev { struct scull_qset *data; /* Pointer to first quantum set */ int quantum; /* the current quantum size */ int qset; /* the current array size */ unsigned long size; /* amount of data

常用算法设计和优化策略(本蒟蒻不定期更新)

常用算法设计和优化策略(本蒟蒻不定期更新) 下面是紫书上讲的常用算法设计策略和优化策略: 分治法:将问题分成相同的独立子问题求解.拆分出的问题必须有最优子结构性质(子问题求出的是最优解) 动态规划.本质是:对于一个问题,通过划分阶段,定义状态与状态间的关系,来分解问题.利用单阶段问题之间的联系,或者同一阶段状态之间的联系,一个一个阶段往下决策,最终解决问题. 拆分出的问题必须满足最优子结构性质和无后效性(当前阶段以前的状态不会影响以后的状态,只与当前阶段有关).动归的目的是避免重叠子问题.递推和