zoukankan      html  css  js  c++  java
  • 字符串属性使用strong的原因

    字符串属性使用strong的原因

    使用copy

    • 一般情况下,我们在声明字符串的时候,属性修饰符都是使用copy关键字
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    //外界改变时, 不会影响当前字符串.
    @property (nonatomic ,copy)NSString *name;
    
    @end
    • 其.m文件中的set方法
    #import "Person.h"
    
    @implementation Person
    
    -(void)setName:(NSString *)name{
        _name = [name copy];  
    }
    
    @end
    • 在set方法中,[name copy]会先去判断传递进来的name是否是可变的,如果是可变的就会重新生成一个新的地址,如果是不可变的就直接进行赋值.现实开发当中用到的都是不可变的字符串来进行赋值,如果使用copy就都得进行判断类型,这样就很大程度上降低了性能.

    使用strong

    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    @property (nonatomic ,strong)NSString *name;
    
    @end
    • 其.m文件的set方法
    #import "Person.h"
    
    @implementation Person
    
    -(void)setName:(NSString *)name{
        _name = name;   
    }
    @end

    在外界进行赋值时,不会进行判断,直接将传递进来的字符串进行赋值.

    在实际应用中,我们可以通过传递不同类型的字符串,并打印内存地址来证明.

  • 相关阅读:
    iOS CoreData使用笔记
    iOS UIWebView中添加手势
    Swift sha1 md5加密
    Swift用block响应UIAlertView和UIActionSheet的按钮点击事件
    iOS判断iPhone型号
    iOS Document Interaction 编程指南
    Swift项目开发中缓存计算以及清除
    SVN 一次性提交多个目录中文件
    svn 相关
    sublime text 2相关
  • 原文地址:https://www.cnblogs.com/zhoudaquan/p/5034187.html
Copyright © 2011-2022 走看看