先说总结:1.对于不可变属性,推荐使用copy,能防止不可变对象变成可变对象,从而防止值发生不可控变化。 2.对于可变属性,推荐使用strong,因为用copy修饰后,会变成不可变对象,再调用可变对象函数时会crash。1、当修饰属性为"不可变"时:如NSString、NSArray、NSDictionary:首先,用copystrong声明两个不可变属性@property (nonatom
转载 2024-01-12 07:51:11
118阅读
深拷贝就是把内容拷贝一份产生一份新对象,新对象计数器为1,源对象计数器不变。而浅拷贝是指针拷贝,把地址给你,你和我指向同一个对象,源对象计数器加一,源对象副本计数器相同。我们知道在OC中拷贝函数有copymutablecopy,只要你调用了copy不管是NSString, NSDictionary还是NSArray还是NSMutableString还是NSMutableDictionar
转载 2023-11-11 06:44:52
84阅读
主要区别还是对于字符串类型来说。先说说这两个作用吧:Strong:指向并持有该对象,引用计数会加1。引用计数为0销毁,可以通过将变量强制赋值 nil 来进行销毁。copycopy关键字 strong类似,copy 多用于修饰有可变类型不可变对象上 NSString,NSArray,NSDictionary上。总结:1.当字符串是NSString时,由于是不可变字符串,所以,不管使用stro
原创 2024-03-01 18:21:45
209阅读
深拷贝浅拷贝    深拷贝浅拷贝主要是对类类型而言,浅拷贝就是指针拷贝,深拷贝是对象拷贝。propertystrongcopy   在接触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头文件中前两个方法就是loadinitialize两个类方法,本篇文章就对这两个方法做下说明整理。Objective-C作为一门面向对象语言,有类对象概念。编译后,类相关数据结构会保留在目标文件中,在运行时得到解析使用。在应用程序运行起来时候,类
转载 6月前
3阅读
在讨论深浅拷贝之前,先明确一下它们含义深拷贝:重新开辟一块内存区域,拷贝对象内容,不影响对象引用计数 浅拷贝:与之前对象共用一块内存,仅拷贝对象地址,对象引用计数加1对于strong修饰对象,都是浅拷贝,仅拷贝对象地址,使得对象引用计数加1 ,而copymutableCopy主要分为集合类对象非集合类对象来讨论,先给一张图。mutable:可变 immutable:不可变
       CopyStrong区别需要了解点内存管理知识,Strong是ARC下引入修饰,相当于手动管理内存(MRC)下retain,在相关代码下,常常看到有的人用copy修饰NSString,NSArray,NSDictionary..等存在可变与不可变之分对象,常常会用copy,而不是strong,下面代码来解释一下strong与cop
# 学习 iOS Strong Copy 属性 在 iOS 开发中,理解对象内存管理引用类型是非常重要,尤其是当我们使用 Objective-C 或 Swift 来创建对象时。今天,我们将讨论如何实现“strong copy”功能,确保你数据在内存处理方面更为安全高效。 ## 整体流程 以下是实现 iOS 中强引用拷贝操作步骤: | 步骤 | 描述
原创 8月前
13阅读
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?其实这个问题不妨改问:xhtmlhtml有什么不同,为什么要用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,那copystrong情况下到底有什么区别呢? 比如: @property (retain,nonatomic) NSString *rStr; @property (copy, nonatomic) NSString *cStr; - (void)test: {
转载 2024-05-09 12:53:42
63阅读
在我们编程过程中,我们通常会定义很多属性。那么问题来了,在定义属性时候, 我们是需要用copy还是用strong。下面以NSString为例,在我们通常定义中。我们会定义NSStringNSMutableString两种类型。在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阅读
  • 1
  • 2
  • 3
  • 4
  • 5