作者|胖虎_callmeV前言在iOS开发过程中,会经常使用到一个修饰词“weak”,使用场景大家都比较清晰,用于一些对象相互引用的时候,避免出现强强引用,对象不能被释放,出现内存泄露的问题。weak 关键字的作用弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为 nil。weak底层原理1.weak编译解析首先需要看一下weak编译之后具体出现什么样的变化,通过Cl
转载
2023-09-15 19:40:21
110阅读
1、什么是iOS?提问:
买来一台新电脑后,应该先干什么? iOS就是搭载在iPhone 、iPad、iPod、Apple TV上的操作系统。
苹果系统
那么,操作系统是什么呢? 操作系统简单来说就是一个运行在计算机上的舞台,舞台上有各种各样的道具(软件)可以供你使用把玩。比如说我们最常见的windows xp,windows 7,windows 8,Mac OS等等以及
转载
2024-05-24 16:05:36
23阅读
# iOS开发的strong实现原理
在iOS开发中,我们经常会使用`strong`关键字来修饰对象的属性,保证对象在使用过程中不会被释放。那么,`strong`是如何实现的呢?本文将详细介绍`strong`的实现原理,帮助读者更好地理解iOS内存管理机制。
## 引用计数器(Reference Counting)
在iOS开发中,使用引用计数器(Reference Counting)来管理
原创
2023-10-16 07:01:26
71阅读
深入详解 IOS strong 和 weak今天写点深刻的关于内存管理的东西 IOS 采用arc 管理内存 让程序员不在纠结于内存的开辟释放等繁琐的工作让内存管理更加简单 arc 是类似于垃圾回收机制 当一个对象没有一个强引用 指向它的时候 该 对象就会被自动释放 当
转载
2023-09-06 20:26:54
7阅读
# iOS开发Strong Password实现教程
## 引言
在iOS开发中,保护用户数据安全是一项非常重要的任务。其中一个重要的方面就是强化密码策略,以确保用户的密码不易被猜解或破解。本教程将向你介绍如何在iOS开发中实现Strong Password。
## 整体流程
下面是整个实现Strong Password的流程图:
```mermaid
flowchart TD
A[
原创
2024-01-08 11:43:12
72阅读
strong修饰的属性是强指针类型的,weak修饰的属性是弱指针类型的ARC对于内存中的对象管理机制,当某个对象没有被强指针指向的时候,该对象就会被销毁。所以不适当的使用strong和weak修饰属性容易造成内存泄露。OC对象(继承NSObject的类创建的对象)用strong修饰。UI控件连线的时候都会用weak修饰,给了大家一个假象。就是UI控件属性都是用weak修饰的。这种说法是错误的当我们
转载
2023-12-15 19:44:54
38阅读
strong & weak:iOS 开发中经常会用strong和weak来修饰一些属性,这两个的区别又在哪。。就像图片中的这样,A和B都要引用C对象,可是A和C之间是实线(强引用),B和C之间是虚线(弱引用)。不论B是否还在引用C(即不论虚线是否存在),只要当A还在引用C的时候,表明实线还在,那么C就会一直占用一块内存空间,不会被释放;但是当A不再引用C,实线不存在了,就表明没有强指针再指
转载
2023-07-14 20:52:23
89阅读
以下是ViewController中的两个方法,大家觉得有没有问题呢?- (void)removeRect {
@weakify(self);
//动画执行三秒后删除视图
[UIView animateWithDuration:3 animations:^{
@strongify(self);
self->_rect.center = C
转载
2023-09-04 15:43:47
51阅读
最近在自己做一个小程序,遇到了页面跳转的问题,然后上网一通乱搜,跳转的问题解决了,又有传值的问题。上面两个问题解决了,又发现内存比刚开始时多占用了2M,于是,各种内心纠结,想彻底搞清楚strong 和 weak 在ARC下到底是怎么个意思,也顺便理清了页面跳转之间的一些联系。 下面开始进入正题:(程序使用了storyboard)由于页面中使用了一个
转载
2024-05-19 06:47:57
65阅读
深拷贝就是把内容拷贝一份产生一份新的对象,新对象计数器为1,源对象计数器不变。而浅拷贝是指针拷贝,把地址给你,你和我指向同一个对象,源对象计数器加一,源对象和副本的计数器相同。我们知道在OC中的拷贝函数有copy和mutablecopy,只要你调用了copy不管是NSString, NSDictionary还是NSArray还是NSMutableString还是NSMutableDictionar
转载
2023-11-11 06:44:52
84阅读
先一句话总结:strong类保持他们拥有对象的活着,weak类他们拥有的对象被人家一牵就牵走,被人家一干就干死。(strong是一个好大哥所以strong,呵呵,weak是一个虚大哥所以weak,呵呵) 比如有一个对象是string类,实例是@“hello”现有两个strong的string指针大哥a和b都指向了hello,现在b大哥把改成了指向@“hi”。那么这时候a大哥指向的值是什么
转载
2024-08-15 01:32:38
6阅读
Question description:我们经常在给一个类定义propface Student : NSObject@p
原创
2023-05-22 11:14:53
102阅读
文章目录概要内存管理的思考方式思考方式对象操作与OC中方法的对应自己生成的对象,并自己持有allocnewcopy与mutableCopy不再需要自己持有的对象时释放release无法释放非自己持有的对象alloc/retain/release/dealloc底层实现GNU源码allocretainreleasedealloc苹果实现autorelease什么是autoreleaseGNU源码苹
转载
2024-10-25 20:16:56
35阅读
先说总结:1.对于不可变属性,推荐使用copy,能防止不可变对象变成可变对象,从而防止值发生不可控变化。
2.对于可变属性,推荐使用strong,因为用copy修饰后,会变成不可变对象,再调用可变对象的函数时会crash。1、当修饰的属性为"不可变"时:如NSString、NSArray、NSDictionary:首先,用copy和strong声明两个不可变属性@property (nonatom
转载
2024-01-12 07:51:11
118阅读
一. 版本1 在Objective-C中,NSObject是根类,而NSObject.h的头文件中前两个方法就是load和initialize两个类方法,本篇文章就对这两个方法做下说明和整理。Objective-C作为一门面向对象语言,有类和对象的概念。编译后,类相关的数据结构会保留在目标文件中,在运行时得到解析和使用。在应用程序运行起来的时候,类
# 学习 iOS 中的 Strong Copy 属性
在 iOS 开发中,理解对象的内存管理和引用类型是非常重要的,尤其是当我们使用 Objective-C 或 Swift 来创建对象时。今天,我们将讨论如何实现“strong copy”功能,确保你的数据在内存处理方面更为安全和高效。
## 整体流程
以下是实现 iOS 中强引用和拷贝操作的步骤:
| 步骤 | 描述
strong是web标准中xhtml的标签,strong的意思是“强调”;b是html的,b的意思是bold(粗体)。为什么用strong代替b?其实这个问题不妨改问:xhtml和html有什么不同,为什么要用xhtml代替html? 网上有很多详细的文章谈这个,可以找了看看 简单地说:web标准主张xhtml不涉及具体的表现形式,“强调”可以用加粗来强调,也可以用其它方式来强
转载
2023-07-18 18:16:30
118阅读
今天在写程序的时候,用IBOutlets连了一个自定义的控件,出现了问题,后面访问的时候,控件里有些subviews没有初始化好,取到的时候为nil, 程序里用了ARC, IBOutlets一连接上,就自动加了weak的定义,于是知道问题应该是出现在这个上面了,weak改成strong, 问题是解决...
转载
2013-09-22 15:12:00
120阅读
2评论
今天在写程序的时候,用IBOutlets连了一个自定义的控件,出现了问题,后面访问的时候,控件里有些subviews没有初始化好,取到的时候为nil, 程序里用了ARC, IBOutlets一连接上,就自动加了weak的定义,于是知道问题应该是出现在这个上面了,weak改成strong, 问题是解决...
转载
2013-09-22 15:12:00
94阅读
2评论
有人问。在ARC下,IBOutlets究竟应该定义成strong 还是 weak ?支持这个答案的人最多。答案仅是摘自官方文档的一个片段: From a practical perspective, in iOS and OS X outlets should be defined as decla
转载
2017-06-10 09:18:00
72阅读
2评论