update1 杂记

语言: Objective - C.

  1. 类文件分为 .h以及.m
    .h文件作用为定义文件, .m文件作用为声明文件.

  2. 类有两个大的分区. 一个是interface, 一个是implementation

  3. 声明变量的时候, 前缀加上@property, 编译器会自动生成getter以及setter.

  4. 声明变量的时候, 类型分为strong 以及weak.
    objectivec把所有的变量都存在堆中. 用strong可以显示控制变量声明周期.
    当使用strong标签时. 直到变量被赋值为nil, 否则都不会被系统回收掉.
    weak则不然, 当检测没有引用时, 就会被系统回收掉
    (是实时回收吗? 我要查一下.)

  5. 声明方法的时候, 前面要加一个 "-" 好奇葩.

  6. 方法所需参数不用()来包起来, 而是:xx
    例:

  • (int)match:(Card*)card;
    这就是在声明一个名为match, 参数为类型Card, 返回值为int的一个方法..
    (⊙o⊙)哦 好奇葩.
  1. 只有需要访问getter以及setter的时候才使用".", 其他时间都是一个空格就可以了

    card.contents. 这样就是在访问card的getter
    card.contents isEqualToString:self.contents 这样就是在用content(类型为NSString)的isEqualToString方法来进行匹配.

  2. 当用[]包起来的时候, 意思就是向某个对象发送消息.

    [card.contents isEqualToString:self.contents]
    这样是在把isEqualToString这个消息发给contents的getter.

  3. 当一个方法有多个参数的时候. 这样写:
    例. 我想写一个方法名为testfunc, 返回值为void, 参数1类型为NSInteger, 参数2类型为NSString. 那么应该如此实现:

  • (void)testfunc (NSInteger)arg1 (NSString)arg2;
  1. 想声明一个private类型的变量时. 应该写在.m文件里的interface下.
    例. 我想声明一个 类型为NSArray的变量
  @interface xx
        @property(strong) NSArray * tmp;
  @end
  @implementation
        - (NSArray) tmp
        {
            return _tmp;
        }
   @end
 // lazy way:
 @implementation
  - (NSArray) tmp
    {
       if(!_tmp)
       {
          _tmp = [[NSArray alloc] init]
       }
        return _tmp;
    }
@end
  1. @[] 意义为 创建一个数组.
    @"" 意义为创建一个常量
    这两个其实都是notation, notation意义为向某个对象发送某消息.

  2. 在.m文件里自动生成setter 以及getter

@synthesize xxoo = _xxoo;

你可能感兴趣的:(update1 杂记)