[Objective-C A]-知识点锦集

1.@autoreleasepoolwhy1

2.retain

O-C内存管理和点语法

    1>OC内存管理正常情况要使用大量的retain和relrese操作

    2>点语法可以减少使用retain和release的操作

3.Runloop

4.@property(retain)编译器如何申明

  编译器对于@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就毫无关系

9.Foundation框架(学习Objective-C必备知识)

10.IOS开发中需要注意的一些问题

11.Xcode6-beta3版本新建项目中没有foundation