先说总结:1.对于不可变属性,推荐使用copy,能防止不可变对象变成可变对象,从而防止值发生不可控变化。
2.对于可变属性,推荐使用strong,因为用copy修饰后,会变成不可变对象,再调用可变对象的函数时会crash。1、当修饰的属性为"不可变"时:如NSString、NSArray、NSDictionary:首先,用copy和strong声明两个不可变属性@property (nonatom
转载
2024-01-12 07:51:11
118阅读
深拷贝就是把内容拷贝一份产生一份新的对象,新对象计数器为1,源对象计数器不变。而浅拷贝是指针拷贝,把地址给你,你和我指向同一个对象,源对象计数器加一,源对象和副本的计数器相同。我们知道在OC中的拷贝函数有copy和mutablecopy,只要你调用了copy不管是NSString, NSDictionary还是NSArray还是NSMutableString还是NSMutableDictionar
转载
2023-11-11 06:44:52
84阅读
主要区别还是对于字符串类型来说。先说说这两个的作用吧:Strong:指向并持有该对象,引用计数会加1。引用计数为0销毁,可以通过将变量强制赋值 nil 来进行销毁。copy:copy关键字和 strong类似,copy 多用于修饰有可变类型的不可变对象上 NSString,NSArray,NSDictionary上。总结:1.当字符串是NSString时,由于是不可变字符串,所以,不管使用stro
原创
2024-03-01 18:21:45
209阅读
深拷贝和浅拷贝 深拷贝和浅拷贝主要是对类类型而言的,浅拷贝就是指针拷贝,深拷贝是对象拷贝。property的strong和copy 在接触iOS程序时经常会看到程序某些类类型属性被strong修饰,某些被copy修饰,刚开始接触时有些疑惑,后来不知咋地形成了这样的观念,对于mutable类型,用copy修饰,对于immutable类型,用stron
转载
2023-07-10 16:47:09
67阅读
Question description:我们经常在给一个类定义propface Student : NSObject@p
原创
2023-05-22 11:14:53
102阅读
Windows Phone 7已于10月11日由微软正式发布,作为微软最新一代的手机操作系统,微软公司将旗下的Xbox Live游戏、Zune音乐与独特的视频体验整合到手机中。Windows Phone 7支持自定义开机屏幕,并加入了Hubs概念,把软件和服务合并成一个丰富的体验集称为Hubs,涵盖了联系人、办公、应用商店、图片、游戏、音乐和视频、邮件等,即People Hub、Office Hu
一. 版本1 在Objective-C中,NSObject是根类,而NSObject.h的头文件中前两个方法就是load和initialize两个类方法,本篇文章就对这两个方法做下说明和整理。Objective-C作为一门面向对象语言,有类和对象的概念。编译后,类相关的数据结构会保留在目标文件中,在运行时得到解析和使用。在应用程序运行起来的时候,类
在讨论深浅拷贝之前,先明确一下它们的含义深拷贝:重新开辟一块内存区域,拷贝对象的内容,不影响对象的引用计数 浅拷贝:与之前的对象共用一块内存,仅拷贝对象的地址,对象的引用计数加1对于strong修饰的对象,都是浅拷贝,仅拷贝对象的地址,使得对象的引用计数加1 ,而copy和mutableCopy主要分为集合类对象和非集合类对象来讨论,先给一张图。mutable:可变 immutable:不可变
转载
2024-01-15 21:02:04
74阅读
Copy,Strong的区别需要了解点内存管理的知识,Strong是ARC下引入的修饰,相当于手动管理内存(MRC)下的retain,在相关代码下,常常看到有的人用copy修饰NSString,NSArray,NSDictionary..等存在可变与不可变之分的对象,常常会用copy,而不是strong,下面代码来解释一下strong与cop
转载
2023-12-13 23:25:40
58阅读
# 学习 iOS 中的 Strong Copy 属性
在 iOS 开发中,理解对象的内存管理和引用类型是非常重要的,尤其是当我们使用 Objective-C 或 Swift 来创建对象时。今天,我们将讨论如何实现“strong copy”功能,确保你的数据在内存处理方面更为安全和高效。
## 整体流程
以下是实现 iOS 中强引用和拷贝操作的步骤:
| 步骤 | 描述
1:ARC环境下,strong代替retain.weak代替assign2:weak的作用:在ARC环境下,,所有指向这个对象的weak指针都将被置为nil。这个T特性很有用,相信很多开发者都被指针指向已释放的对象所造成的EXC_BAD_ACCESS困扰过,
原创
2022-05-14 10:50:09
829阅读
到这里我们就不得不说说什么时候使用copy。我的印象中,只有两处使用了copy,即修饰NSString类型与block,其他的都是使用strong关键字修饰。 说到这里,我们先来说说NSString类型,我在创建的NSString类型的属性中,也曾也使用过strong修饰的,因为我几乎没有使用过NSMutableString类型转换,我不用去考虑
转载
2023-07-06 11:52:59
109阅读
本来要自己写一篇的,看到mj老师的这篇很好,就果断复制过来了,再加上自己
转载
2023-02-06 13:35:04
101阅读
@property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计
转载
2023-05-09 16:22:56
157阅读
strong是web标准中xhtml的标签,strong的意思是“强调”;b是html的,b的意思是bold(粗体)。为什么用strong代替b?其实这个问题不妨改问:xhtml和html有什么不同,为什么要用xhtml代替html? 网上有很多详细的文章谈这个,可以找了看看 简单地说:web标准主张xhtml不涉及具体的表现形式,“强调”可以用加粗来强调,也可以用其它方式来强
转载
2023-07-18 18:16:30
118阅读
1我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码:__weak typeof(self) weakSelf = self;
[self doSomeBlockJob:^{
__strong typeof(weakSelf) strongSelf = weakSelf;
if (strongSel
转载
2024-06-12 17:48:35
142阅读
VMWARE TOOLS安装提示THE PATH IS NOT A VALID PATH TO THE GENERIC KERNEL HEADERS I solved this problem, I gues
原创
2023-05-22 17:31:51
90阅读
copy 和 strong(retain) 区别1. 大部分的时候NSString的属性都是copy,那copy与strong的情况下到底有什么区别呢? 比如: @property (retain,nonatomic) NSString *rStr;
@property (copy, nonatomic) NSString *cStr;
- (void)test:
{
转载
2024-05-09 12:53:42
63阅读
在我们的编程过程中,我们通常会定义很多属性。那么问题来了,在定义属性的时候, 我们是需要用copy还是用strong。下面以NSString为例,在我们通常的定义中。我们会定义NSString和NSMutableString两种类型。在NSString模式下,因为其性质为不可变的字符串,所以,不论copy还是NSString修饰的属性的对象指向的都是同一个地址。即,NSString指向的地址。假如
转载
2023-08-17 16:59:25
52阅读
# iOS Model 中用 `copy` 还是 `strong`
在 iOS 发展中,内存管理是一个重要的概念。随着 Swift 和 Objective-C 的日益普及,开发者经常需要选择使用 `copy` 还是 `strong` 来引用对象。今天,我们将深入探讨这两种引用方式,了解它们的具体用途和适用场景。
## 1. 引用计数简介
在 Objective-C 中,内存管理依赖于引用计数
原创
2024-10-25 04:04:16
39阅读