美文网首页
update1 杂记

update1 杂记

作者: 冰风47 | 来源:发表于2016-06-17 16:40 被阅读10次

    语言: 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 杂记

          本文链接:https://www.haomeiwen.com/subject/ajevdttx.html