随笔分类 - Objective-C
iOS开发- tableView的协议
摘要:在使用 UITableView 时,必须实现的协议主要包括以下几个 1. UITableViewDataSource 协议 这是最重要的协议,用于提供数据给 UITableView。没有这个协议,UITableView 是无法显示任何内容的。 必须实现的方法: tableView:numberOfR
iOS开发框架--QMUIKit
摘要:深入解析 QMUIKIT:高效的 iOS UI 组件库 QMUIKIT(QMUI)是一个专为 iOS 开发者设计的开源 UI 组件库,旨在提升开发效率与用户体验。本文将从如何简单使用 QMUI、底层原理、核心组件的实现细节,以及一些最佳实践等方面进行深入探讨。 1. 简单使用 QMUI 1.1 安装
iOS开发-如何判断手机是否开启了放大模式
摘要:通过以下代码段判断是否开启了放大模式: if (UIScreen.mainScreen.scale < UIScreen.mainScreen.nativeScale) { //使用放大模式 }else if (UIScreen.mainScreen.scale == UIScreen.mainSc
iOS开发-属性的内存管理
摘要:Objective-C中,类的实例变量(instance variables)和属性(properties)是两种不同的概念,其中属性的内存管理就较为复杂。Objective-C 提供了多种属性修饰符,用于管理对象的内存。这些修饰符用于控制对象的生命周期和内存管理行为。 以下是一些常见的属性修饰符及
iOS开发- RunLoop
摘要:RunLoop用于管理事件的循环处理机制。运行循环在应用程序的主线程中自动启动,负责监听和分发各种事件,包括用户交互(如触摸事件)、定时器事件、选择器调用和其他异步回调。 运行循环的作用 运行循环的主要作用包括: 处理输入事件:运行循环监听用户的输入,如触摸、点击和滑动事件,并将它们分发到适当的处理
iOS开发- reloadData方法介绍
摘要:在实际开发中,经常需要对tableView或者collectionView执行更新数据源的操作,reloadData是一个常见的方法。这是 UITableView 和 UICollectionView 提供的一个方法,用于重新加载视图的所有可见行(或项)。 当调用 reloadData 方法时,UI
iOS开发-多线程编程
摘要:OC中常用的多线程编程技术: 1. NSThread NSThread是Objective-C中最基本的线程抽象,它允许程序员直接管理线程的生命周期。 NSThread *myThread = [[NSThread alloc] initWithTarget:self selector:@selec
iOS面试题-load 和 initlize的区别
摘要:+load和+initialize是两个与类的加载和初始化相关的特殊方法。它们在类的生命周期中的作用和调用时机有明显的区别。 +load 方法 调用时机:+load在类初始加载进内存时调用,这通常发生在程序启动的时候,所有类和分类(Category)的+load方法在应用程序的生命周期中只会被调用一
iOS面试题-tableivew上面展示图片的时候,在网络还未回来时,将cell滑走,那被划走的cell还会不会显示图片?
摘要:当在UITableViewCell中加载网络图片时,如果在图片下载完成之前用户滑动了UITableView,使得对应的UITableViewCell已经滑出屏幕,那么这个被滑走的UITableViewCell是否还会显示图片,取决于如何处理图片的加载和UITableViewCell的重用。 UITa
OC-从内存角度理解block可作为方法传入参数的原因
摘要:从内存管理的角度来看,block可以作为方法的传入参数是因为block在Objective-C中被设计为一种特殊的对象,它们可以在堆(heap)上分配和管理。这使得block可以像其他对象一样被传递、复制和持有。以下是一些关键点,解释为什么block可以作为方法的传入参数: 1. Block的类型和
OC-NSArray的基本介绍
摘要:NSArray 是不可变的;存储不同类型的对象。这意味着一个NSArray可以同时包含NSString、NSNumber、NSDictionary等不同类型的对象。同时只能存储对象,不能直接存储基本数据类型(如 int、float 等)。如果需要存储基本数据类型,应该先将它们封装为相应的对象类型(如