美文网首页iOS
语法上的小问题

语法上的小问题

作者: kingandyoga | 来源:发表于2016-05-22 19:55 被阅读18次

语法上的小问题

深拷贝(mutableCopy)跟浅拷贝(copy)

首先看一组照片:

alt textalt text

简单来说:深拷贝就是内容拷贝;浅拷贝就是指针拷贝。

系统对象的copy跟mutableCopy方法

无论是集合类对象,还是非集合类对象,接收到copy跟mutableCopy消息时,都会有以下准则:

  • copy返回imutable对象;如果返回mutable就会崩溃
  • mutableCopy返回mutable对象
[immutableObject copy] // 浅复制
[immutableObject mutableCopy] //非集合深复制 集合单层深复制
[mutableObject copy] //深复制
[mutableObject mutableCopy] //非集合深复制 集合单层深复制

更多信息可以参考这里


Property的修饰符

  1. 默认是strong类型
  2. xib/storyboard链接的对象可以用weak,是因为IBOutlet的view不被释放,这个链接的对象的引用计数不会为0.
  3. block声明使用copy
  4. 字符串使用copy
  5. 属性声明修饰符有:strong, weak, unsafe_unretained, readWrite,默认strong, readWrite的。
  6. 没有指明是nonatomic的时候,默认时候atomic原子操作,会影响性能。

ARC下重写 Getter and Setter

  1. 只重写setter和getter其中之一,可以直接重写:
@property (nonatomic, strong) NSMutableArray *array;
- (void)setArray:(NSMutableArray *)array {
    if (_array != array) {
        _array = nil;
        
        _array = array;
    }
}


  1. 两个一起重写的时候
@property (nonatomic, strong) NSMutableArray *array;
@synthesize array = _array;
- (void)setArray:(NSMutableArray *)array {
    if (_array != array) {
        _array = nil;
        
        _array = array;
    }
}

- (NSMutableArray *)array {
    return _array;
}

or

@interface ViewController : UIViewController{
    NSMutableArray *_array;
}

- (void)setArray:(NSMutableArray *)array {
    if (_array != array) {
        _array = nil;
        
        _array = array;
    }
}

- (NSMutableArray *)array {
    return _array;
}

相关文章

  • 语法上的小问题

    语法上的小问题 深拷贝(mutableCopy)跟浅拷贝(copy) 首先看一组照片: 简单来说:深拷贝就是内容拷...

  • Thymeleaf语法取map值的方法

    最近项目中使用thymeleaf语法实现前端取值,遇到一个小问题就是如果后端传来的是一个map型,语法中应该如何取...

  • router 上的小问题

    以上写法会导致找不到下边的页面

  • swift4 语法小问题

    假设我们有一个这样的函数: 现在来用一下: 编译器发出了红色怒吼:variable used within it'...

  • 身体之事无小事

    身体之事无小事,身体上的事情,有小问题就会有大问题,出来小问题,杀灭小问题,永远将小问题杀灭在摇篮里,就不愁有大问题。

  • markdown语法简介

    最近遇到一个小问题,不论是写博客还是日常写作,总避免不了在内置markdown语法的编辑器中忘记一些语法,这让我产...

  • 工作上的小问题

    最近工作上没有太多事情,自己就研究了一下 Vue ,以前自己在项目中都是用 Angular,但听盆友说 Vue的效...

  • 快速上⼿ Kotlin

    快速上⼿ Kotlin 基础语法 函数基础语法 与 Java 代码互调 Java 与 Kotlin 交互的语法变化...

  • javascript语法上的特点

    很多语言的基础语法方面都大同小异。初学javascript,还没有js代码上的积累,为了识记js语法上的一些特点,...

  • 文学化编程-nbviewer

    在 nbviewer 上显示的有点小问题,在自己的 jupyter会好些,嘿嘿

网友评论

    本文标题:语法上的小问题

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