《Objective-C程序设计(第四版)》读书笔记(三)

来源:互联网 发布:软件培训计划方案 编辑:程序博客网 时间:2024/05/16 00:26
    6. 块 (Blocks) (p268)

    作为C语言的扩展,块其实是由苹果公司添加到语言中的。这个看起来像函数的东西,定义在函数或者方法的内部,并且能够访问在函数或者方法范围内块之外的任何变量。其实,这个东西在一些方面有点像Java里的匿名内部类。块的优势在于能够让系统分配给其他处理器或应用的其他线程执行。
    使用块有一点注意的是,如果块的内部有一些变量,在定义块的时候就已经具有值的话不能在块外部再次修改值了。如果试图在块内部修改值也不可以,编译器会报错:给只读(readonly)变量赋值。

    7.isa (p306)

    实例变量存储在结构中,使用alloc消息分配新对象中,系统会在内存中预留足够的空间来存储这些结构,成员中有一个名为isa的保护成员,会在运行时把该实例的类信息传递给系统,这就是为什么我们返回通用类型指针(id)后给它发送类特有的消息时,还能正常运行的原因。在另一本大牛Joe Conway的书里提到"isa"这个名字是抽象自"is a",表达它是个什么的意思。