> 백엔드 개발 > PHP 튜토리얼 > phper初学objective-c之读书笔记(1)

phper初学objective-c之读书笔记(1)

WBOY
풀어 주다: 2016-06-13 13:06:02
원래의
779명이 탐색했습니다.

phper初学objective-c之读书笔记(一)
基本语法:

static定义在全局变量上时会改变其作用域,对应所在的局部范围。extern类似php中的global。

结构体struct定义了一个多维kv数组,枚举类型enum检测数据范围,两者通过typedef可封装出自定义类型 。

*表示指针取值,&为取址操作(php中为引用传值,含义不同)。从实例化一个对象 NSString *foo=[NSString stringWithString:"example"] 可知,对象也是指针;指针取址后可通过运算操作地址。

带*的变量都寄存在heap,相反则在stack。

对象:

类中的方法又称消息,通常意义上调用一个方法,在oc中又称发送一个消息。

对象方法init用于初始化函数(相对于php的构造函数construct)。类方法即静态方法

私有方法放在实现文件中,调用方法之前

@sythesize会在编译时生成所需的setter、getter方法

property中的特性包括setter/getter、readwrite/readonly、assign/retain/copy、nonatomic

非线性安全noatomic不使用线程锁,性能略有提高;retain为指针拷贝,copy为内容拷贝,作用于NS对象

内存管理:

调用带有alloc、copy、create,使用类似[Foo alloc] init..]和CreateFoo()会使保留计数加1

通过autorelease在退出循环后会自动释放内存,但不是立刻释放;需要立刻释放使用[Foo release]形式,或创建自动释放池NSAutoreleasePool,再循环体尾部释放(drain或release),嵌套的释放池在最内部优先释放

init类似php的构造方法__construct,则dealloc则类似析构方法__destruct

oc中允许nil对象调用方法,结果为不执行,因此在释放成员变量后将指针设为nil,否则指向的内存地址会不存在(dangling pointer)

委托模式中对象互相内嵌会导致内存泄露,这时应该将委托变量设为assign类型的弱引用

属性的引用类型,强引用表明保留在内存中的指针,不被回收,弱引用反之

当nib文件中的对象没有被外部引用时,可能会被垃圾回收,因此创建一个强引用的IBOutlet连接到owner对象上

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿