已经是2013年了,出来也有快2年,感慨万千,从php,java低级菜鸟也变为普通菜鸟,从对linux一无所知到有所了解,也学会了在linux下常用工具的使用等,一年前,来到公司做游戏后端,语言用的是java,管理网站php,游戏运行与监控shell,游戏已经失败了,说起来2012的页游市场有些惨淡。好了,转入正题ios
ios也是目前公司转型后的方向,并且也取成一定的成功,所以我们也是要跟着转型,呵呵,我是后端的,后端可以不用转ios,但本人一心想多学点东西,趁着现在年轻,又有设备就多学点吧
了解新的一门语言,首先也是先用基本的东西学起,本文先讲解NSObject
NSObject即为ios的基础类,其它类均继承于它,所以它的所以方法,其它类也会有
alloc 分配内存,未初始化
init 对内存初始化
release 释放内存 ,注意指针要赋于nil(ios的NULL的写法),否则会存在野指针
allocation 是新对象旌的过程。但注意的是未对内存初始化,用init则会初始化为0,如果是BOOL型的则为NO,float 为0.0
init方法在NSObject中使用没有什么问题,如果一个类要重写NSObject的init方法,则需要改变self地址引用,否则会出问题,这个是与其他语言有所不同
- (id) init
{
if (self = [super init] ) {
// 分配内存及改变self引用完成
}else{
// 分配内存失败 self 的值为nil
}
return self;
}
NSString *str =[ [NSString alloc ] init ] ; // 创建一个基于堆的str,与NSString *str = @"asfsdfasdf"不同是后者是临时的,它会自动释放
[str release] // 内存释放
new 与 [ [xx alloc] init ] 结果是一样的,但cocoa 惯例是采用后者,可能是代码中太多是用 [ [x x ] x] 形式,保持同样的风格
下节将学习NSString