015.assign atomic copy 属性特性

---------------   main.m   ---------------
#import  <Foundation/Foundation.h>

@interface  FKBook :  NSObject
@property  ( nonatomic  ,  copy )  NSString * name;   // 有copy
// @property (nonatomic) NSString* name;    // 没有copy
@end

@implementation  FKBook
@end

int  main()
{
   
  FKBook * book = [[ FKBook  alloc ]  init ];
    NSMutableString* str = [NSMutableString stringWithString:@"西游记"];
    [book setName:str];
     NSLog ( @"book name 为: %@" , [book  name ]);
    [str appendString:@"是四大名著之一"];  // 修改str字符串
     NSLog ( @"book name 为: %@" , [book  name ]);
}

一、编写本节代码的具体步骤:
1.可仿照 第二章 001节的代码编写步骤,可以把类的接口文件,类的实现文件写在main.m文件中。

二、本节代码涉及到的知识点:
1.assign:简单赋值,不更改引用计数。主要适用于基本数据类型(NSInteger等)。
2.atomic:原子操作,自动生成的set方法像加了一把锁,可避免多线程并发破坏数据的完整性。(默认的)
  nonatomic :非原子操作, 多线程情况下数据可能会有问题。
3.copy:当调用set方法对成员变量赋值的时候,会先给对象做一个副本,再将该副本赋值给成员变量。
4.在上面的代码中,如果有copy,当我们通过str来修改name时,book的name不会改变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值