原子性: 默认的是atomic, 意味着对该属性进行读写操作时会进行加锁, 确保在多线程环境下, 任何一个线程对该属性的读写操作都是”完整的”, 读写进行期间不会被其他线程干涉. 由于使用了锁机制, atomic会造成性能损耗, 降低读写效率. 另外需要强调的是, atomic并不等于线程安全. 例如, 有两个子线程A和B, A线程需要连续多次读取某个属性的值, 而同时B线程又在修改这个属性的
转载 2023-08-27 17:07:52
79阅读
没有比这里更全的了,看我就好了面试官? :介绍下ARC下,常用的属性修饰符及其作用?assign,strong,copy,weakatmoic/nonatomic 安全策略reawrite/readonly  读写策略,访问权限assign: 修饰基本数据类型(比如int,double,bool等),不涉及引用计数的改变!strong:表示指向并持有该对象,其修饰对象的引用计数加1!只要
# iOS OC Block 修饰 ## 1. 概述 在 iOS 开发中,我们经常会使用 block 这种匿名函数来实现一些回调或者异步操作。然而,有时候我们希望对 block 进行一些修饰,比如修改 block 的参数类型或者返回值类型。这就需要使用到 block 的修饰符。 本文将介绍如何在 iOS Objective-C 中使用 block 修饰符,并详细说明每一步需要做什么。 ##
原创 2023-10-29 06:52:31
51阅读
# iOS 静态修饰变量的实现方法 在 iOS 开发中,使用全局变量或者静态修饰变量是一种常见的需求。特别是当你需要在多个类或函数之间共享数据时,静态修饰变量提供了一种简单有效的方法。本文将通过以下几个步骤来帮助你理解并实现 iOS 的静态修饰变量。 ## 流程步骤 以下是实现 iOS 静态修饰变量的基本流程步骤: | 步骤 | 描述
原创 9月前
12阅读
# iOS 中的 assign 修饰对象实现指南 在 iOS 开发中,我们经常需要管理对象的引用和内存。`assign` 是一种常用的修饰符,用于处理对象的内存管理。本教程将带你了解如何实现 `assign` 修饰对象,我们将通过简单的步骤和示例代码来阐明这一概念。 ## 流程简述 在实现 `assign` 修饰对象的过程中,我们需要遵循以下步骤: | 步骤 | 描述 | |------|
原创 2024-09-25 03:30:41
27阅读
iOS 结构体修饰是指在 iOS 开发中对结构体的修饰与优化,以使其在内存管理、数据封装和安全性上更为高效和安全。在开发过程中,遇到结构体的问题时,需要科学有效地备份、恢复与应对潜在的灾难。在此过程中,按照备份策略、恢复流程、灾难场景、工具链集成、预防措施和最佳实践来记录整个解决方案的过程。 ## 备份策略 备份是一种常用方法,用于保护重要数据及项目进度。本文选择通过甘特图来描述备份周期计划。
原创 6月前
22阅读
# 如何实现iOS开发中的Block修饰iOS开发中,Block是一个非常重要的概念,它是一种封装的代码块,可以作为参数传递或作为返回值。Block的修饰可以影响Block的生命周期、内存管理以及在特定情况下的性能。本文将详细介绍Block的修饰机制,并以步骤和代码示例的形式帮助初学者理解如何实现Block修饰。 ## 整体流程 下面是实现Block修饰的整体流程表格,我们将逐步进行讲解
原创 7月前
34阅读
# iOS NSArray 的 copy 修饰与使用 在 iOS 开发中,`NSArray` 是一个非常常用的数据结构,用于存储有序的数据集合。特别是在 Objective-C 中,我们常常需要使用 `copy` 修饰符来确保数据的一致性和安全性。本文将围绕 `NSArray` 的 `copy` 修饰进行详细解释,并提供示例代码。 ## 什么是 `copy` 修饰符? 在 Objective
原创 10月前
50阅读
# iOS 属性修饰默认解析 在iOS开发中,属性修饰符是定义类属性特征的重要工具。它们可以控制属性的存储方式、内存管理以及线程安全等多个方面。在这篇文章中,我们将详细介绍iOS中属性修饰符的默认行为,包括 `strong`、`weak`、`copy` 和 `assign`,并通过代码示例进一步加深理解。 ## 属性修饰符 1. **strong**:强引用,表示对对象的强持有关系。使用 `
原创 2024-08-21 06:22:18
63阅读
     1. assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题. retain,setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序. copy,setter方法进行Copy操作,与retain处理流程一样,先旧值release,再Copy出新的对象,retainCount
转载 2023-07-20 22:13:19
48阅读
ios总共有这些修饰词:assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwriteassign ( ARC/MRC )整型/浮点型等数据类型都用这个词修饰 .如果没有使用 weak strong retain copy 修饰 , 那么默认就是使用 assign 了.assign也可以修饰对象 , 只是对象的计数器不会+1we
# iOS 之 __block 修饰变量的深度解析 在iOS开发中,使用Block是一种常见的编程模式。Block提供了一种快捷的方式来处理回调、异步操作等场景。然而,当我们在Block内部引用外部变量时,往往会遇到一些问题。这时,`__block`修饰符便应运而生。本文将全面解析`__block`的用途、特性及使用示例,帮助开发者更好地理解和运用这一特性。 ## 什么是 __block 在
原创 2024-10-09 06:40:03
72阅读
### iOS 中使用 NSMutableArray 的 copy 修饰iOS 开发中,`NSMutableArray` 是一个非常常用的可变数组类。由于它可以动态地增删元素,开发者在使用时需要特别注意数组的引用与内存管理。为了更好地管理我们在项目中使用的 `NSMutableArray`,理解其与 `copy` 修饰符的关系至关重要。 #### 什么是 NSMutableArray?
原创 9月前
22阅读
# iOS中复制和修饰NSMutableArray的探索 在iOS开发中,数组是一种常用的数据结构,尤其是`NSMutableArray`,它允许对数组进行动态的增删改查等操作。但是,在进行数组的复制时,如何保证数据的一致性和安全性是一个非常重要的话题。本篇文章将探讨`NSMutableArray`的复制及其修饰,提供详细的代码示例,并分析其中的注意事项。 ## 1. NSMutableArr
原创 2024-10-25 06:57:10
25阅读
最近,我自己也是刚刚找到工作,也是面试了很多家公司。也尝试着总结一下,这是我的第一篇面试之后的总结,那么前戏不多,直奔主题,小伙们似乎已经等不及啦。我们开发的过程中经常的使用代理delegate来替我们做事,而怎么修饰代理属性呢,说实话之前我还用过strong,却也一样实现功能,那时候我觉得有什么的,搞得出来都一样,想想都好笑。这个问题也是面试官的钟爱问题了。现在,这里郑重庄严的说一下delega
转载 2023-09-16 13:30:07
54阅读
让我们看下代码://文件test.m #import <Foundation/Foundation.h> void test() { //下面分别定义各种类型的变量 int a = 10; //普通变量 __block int b = 20; //带__block修饰符的block普通变
转载 2023-07-04 13:29:24
55阅读
iOS之Block详解:Block详解ViewController.h(ARC)#import <UIKit/UIKit.h> @interface ViewController : UIViewController // 属性声明的block都是全局的__NSGlobalBlock__ @property (nonatomic, copy) void (^copyBlock)
转载 2023-07-05 21:59:00
85阅读
Block 这个东西比较难懂,如果没学过其他有类似功能的语言还真搞不明白。OK,先来介绍一下它是什么东西吧!Block 是iOS在4.0之后新增的程式语法,严格来说block的概念并不算是基础程式设计的范围,对初学者来说也不是很容易了解,但是在iOS SDK 4.0之后,block几乎出现在所有新版的API之中,换句话说,如果不了解block这个概念就无法使用SDK 4.0版本以后的新功能,我靠!
转载 2023-07-05 23:07:41
75阅读
在日常的iOS开发中,我们每天都会使用到property,但是对于property的修饰符,可能大家跟我以前一样,理解的不是特别透彻,现在就让我们来了解了解吧,首先,一个property是可以看成是:property = 实例变量+setter方法+getter方法属性修饰符会直接影响后续编译器对于setter和getter方法的合成,属性的修饰符分为以下三类:1.原子性atomic VS non
/* 使用了__weak修饰符的对象,作用等同于定义为weak的property。自然不会导致循环引用问题,因为苹果文档已经说的很清楚,当原对象没有任何强引用的时候,弱引用指针也会被设置为nil; 因此,__block和__weak修饰符的区别其实是挺明显的: 1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 2.__weak只能在A
  • 1
  • 2
  • 3
  • 4
  • 5