摘要:
在使用 UITableView 时,必须实现的协议主要包括以下几个 1. UITableViewDataSource 协议 这是最重要的协议,用于提供数据给 UITableView。没有这个协议,UITableView 是无法显示任何内容的。 必须实现的方法: tableView:numberOfR 阅读全文
摘要:
深入解析 QMUIKIT:高效的 iOS UI 组件库 QMUIKIT(QMUI)是一个专为 iOS 开发者设计的开源 UI 组件库,旨在提升开发效率与用户体验。本文将从如何简单使用 QMUI、底层原理、核心组件的实现细节,以及一些最佳实践等方面进行深入探讨。 1. 简单使用 QMUI 1.1 安装 阅读全文
摘要:
深入理解MVP模式 在软件开发中,尤其是在创建复杂用户界面时,如何有效地组织代码是一个重要的课题。MVP(Model-View-Presenter)模式作为MVC模式的演进版本,旨在提高应用程序的响应性和可测试性。本文将详细探讨MVP模式的组成部分、底层原理以及如何在实际项目中应用它。 什么是MVP 阅读全文
摘要:
在现代软件开发中,尤其是用户界面(UI)密集的应用程序,如何有效地组织代码是一个至关重要的问题。MVC(Model-View-Controller)模式应运而生,成为许多开发者的首选架构。本文将详细探讨MVC模式的组成部分、底层原理以及如何在实际项目中应用它。 什么是MVC模式? MVC是一种软件设 阅读全文
摘要:
AFNetworking 是一个强大的网络库,专为 iOS 和 macOS 开发而设计,旨在简化网络请求和响应处理。它基于 NSURLSession 提供了一套简洁易用的 API,广泛用于处理网络通信。以下是 AFNetworking 的详细介绍,包括其主要功能、使用方法和架构。 主要功能 简化的网 阅读全文
摘要:
SDWebImage 是一个功能强大的库,用于在 iOS 和 macOS 应用中异步下载和缓存图像。它提供了简单易用的接口,帮助开发者高效地处理网络图片。以下是 SDWebImage 的详细介绍,包括其主要功能、使用方法和架构。 主要功能 异步下载:SDWebImage 在后台线程中下载图片,避免阻 阅读全文
摘要:
MyLayout 框架不仅支持 Objective-C,也可以在 Swift 中使用。通过 MyLayout,可以使用面向对象的方式来创建和管理视图的布局,简化了 Auto Layout 中繁琐的约束设置流程。在 Objective-C 中,MyLayout 提供了相同的布局类型和属性,使用方式稍有 阅读全文
摘要:
通过以下代码段判断是否开启了放大模式: if (UIScreen.mainScreen.scale < UIScreen.mainScreen.nativeScale) { //使用放大模式 }else if (UIScreen.mainScreen.scale == UIScreen.mainSc 阅读全文
摘要:
Objective-C中,类的实例变量(instance variables)和属性(properties)是两种不同的概念,其中属性的内存管理就较为复杂。Objective-C 提供了多种属性修饰符,用于管理对象的内存。这些修饰符用于控制对象的生命周期和内存管理行为。 以下是一些常见的属性修饰符及 阅读全文
摘要:
RunLoop用于管理事件的循环处理机制。运行循环在应用程序的主线程中自动启动,负责监听和分发各种事件,包括用户交互(如触摸事件)、定时器事件、选择器调用和其他异步回调。 运行循环的作用 运行循环的主要作用包括: 处理输入事件:运行循环监听用户的输入,如触摸、点击和滑动事件,并将它们分发到适当的处理 阅读全文
摘要:
在实际开发中,经常需要对tableView或者collectionView执行更新数据源的操作,reloadData是一个常见的方法。这是 UITableView 和 UICollectionView 提供的一个方法,用于重新加载视图的所有可见行(或项)。 当调用 reloadData 方法时,UI 阅读全文
摘要:
OC中常用的多线程编程技术: 1. NSThread NSThread是Objective-C中最基本的线程抽象,它允许程序员直接管理线程的生命周期。 NSThread *myThread = [[NSThread alloc] initWithTarget:self selector:@selec 阅读全文
摘要:
+load和+initialize是两个与类的加载和初始化相关的特殊方法。它们在类的生命周期中的作用和调用时机有明显的区别。 +load 方法 调用时机:+load在类初始加载进内存时调用,这通常发生在程序启动的时候,所有类和分类(Category)的+load方法在应用程序的生命周期中只会被调用一 阅读全文
摘要:
以下是一些常用的 Xcode 快捷键: 构建和运行: Command + B: 构建当前项目。 Command + R: 构建并运行当前项目。 Command + .: 停止运行项目。 代码编辑: Command + ] / Command + [: 增加或减少当前行或选中代码的缩进。 Contro 阅读全文
摘要:
Go语言中的切片(slice)基础 引子 在Go语言中,数组的长度是固定的,且数组长度属于类型的一部分。这种特性限制了数组的灵活性,无法动态扩容,对复杂情况难以适用。 切片的定义 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它基于数组类型进行了封装,具有很大的灵活性,支持自动扩容。切片 阅读全文
摘要:
Go语言中的数组是一个固定长度的元素序列,这些元素都是相同的类型。数组是值类型,这意味着当它们被赋值给新的变量时,会进行一次数组的复制。 创建数组 通过指定元素类型和数组长度来创建数组。数组长度必须是一个常量表达式,因为数组的长度是其类型的一部分。 数组的数量一旦确定就不能更改了,就是说大小不可变 阅读全文
摘要:
当在UITableViewCell中加载网络图片时,如果在图片下载完成之前用户滑动了UITableView,使得对应的UITableViewCell已经滑出屏幕,那么这个被滑走的UITableViewCell是否还会显示图片,取决于如何处理图片的加载和UITableViewCell的重用。 UITa 阅读全文
摘要:
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使得在显示大量数据时,保持流畅的用户体验和较低的资源消耗。。 当UITableView滚动时,屏幕上移出视图的单元格会被回收到一个重用池中。当需要显示新的单元格时,UITableView会首先检查重用池中是否有可用的单元格。如果有,就 阅读全文
摘要:
1. 添加远程仓库 使用git remote add命令将一个远程仓库添加到本地仓库中。 git remote add <name> <url> 例如: git remote add origin https://github.com/username/repository.git 2. 查看远程仓 阅读全文
摘要:
从内存管理的角度来看,block可以作为方法的传入参数是因为block在Objective-C中被设计为一种特殊的对象,它们可以在堆(heap)上分配和管理。这使得block可以像其他对象一样被传递、复制和持有。以下是一些关键点,解释为什么block可以作为方法的传入参数: 1. Block的类型和 阅读全文
摘要:
NSArray 是不可变的;存储不同类型的对象。这意味着一个NSArray可以同时包含NSString、NSNumber、NSDictionary等不同类型的对象。同时只能存储对象,不能直接存储基本数据类型(如 int、float 等)。如果需要存储基本数据类型,应该先将它们封装为相应的对象类型(如 阅读全文
摘要:
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iOS 8 中引入的,作为 UIWebView 的替代品。WKWebView 提供了更高的性能和更多的功能,它是基于 WebKit 引擎的,这也是 Safari 浏览器所使用的引擎。 主要特性 性能提升:相比于老旧的 UIWebV 阅读全文
摘要:
Whistle是一个基于Node.js的跨平台web调试工具,它可以用于拦截和修改HTTP(S)请求和响应,实现网络请求的代理和抓包。具体的安装方式已经在参考文档写得很清楚了,我在这里记录一下我碰见的一些问题。 由于在一些Mac电脑上,系统偏好设置变成了系统设置,那么参考文档里通过系统偏好设置的方法 阅读全文
摘要:
UIGestureRecognizer 用于检测和处理手势的抽象基类。提供了检测用户手势的基本功能,如点按、滑动、捏合、旋转等。通过使用 UIGestureRecognizer 子类,可以为视图添加手势识别功能,增强用户交互体验。 常见的 UIGestureRecognizer 子类 一些常见的手势 阅读全文
摘要:
UIImage 和 UIImageView 是 iOS 开发中常用的两个类,分别用于表示图像数据和显示图像。 UIImage UIImage 是一个表示图像数据的类,可以从文件、数据、图像资源库等加载图像。UIImage 支持多种图像格式,包括 PNG、JPEG、GIF 等。 创建 UIImage 阅读全文
摘要:
UIButton用于创建可交互的按钮。按钮可以响应用户的触摸事件,执行特定的动作或逻辑。 创建和配置UIButton 创建UIButton的基本步骤: // 创建UIButton实例,指定按钮类型为系统类型 UIButton *button = [UIButton buttonWithType:UI 阅读全文
摘要:
在Objective-C进行iOS开发中,UILabel是一个非常基础且常用的UI组件,用于在应用界面上显示一段静态文本。UILabel属于UIKit框架的一部分,提供了丰富的属性来控制文本的显示方式,包括文本内容、字体、颜色、对齐方式、行数等。 创建和配置UILabel 创建一个UILabel实例 阅读全文
摘要:
在iOS开发中,UITableView和UICollectionView是两个非常核心的用于展示集合数据的UI组件。它们都能以列表的形式展示数据,但各自的特点和使用场景有所不同。 UITableView UITableView用于展示和管理垂直滚动的单列数据列表。它是以行的形式展示数据,每行(cel 阅读全文
摘要:
UINavigationController 是 iOS 中用于管理视图控制器层次结构的一个重要组件,通常用于实现基于堆栈的导航。它提供了一种用户界面,允许用户在视图控制器之间进行层次化的导航,例如从列表视图到详细视图。 UINavigationController 的主要功能 管理视图控制器堆栈: 阅读全文
摘要:
文件在本地仓库的状态 常用命令: git status 查询状态 git add 添加到暂存区,可以使用通配符* git commit desc:1 提交到本地仓库,只能提交暂存区的文件,该次提交的描述 git commit -a -m desc:2 表示直接提交,不用放到暂存区 git log 查 阅读全文
摘要:
UITabBarController 是 iOS 中用于管理和显示选项卡界面的一个视图控制器。它允许用户在多个视图控制器之间进行切换,每个视图控制器对应一个选项卡。 主要功能 管理多个视图控制器: UITabBarController 管理一个视图控制器数组,每个视图控制器对应一个选项卡。 显示选项 阅读全文
摘要:
在MVC模型中,V指view,负责用户界面的显示、处理用户输入,并将输入传递给控制器。C是指ViewController,充当模型和视图之间的中介。控制器接收用户输入,处理用户请求,并将结果传递给视图以更新显示。本文详细介绍在iOS开发中UIView与UIViewController的生命周期。 U 阅读全文
摘要:
函数 介绍 有其他语言基础的话就没啥介绍的,基本语法: func functionName(形参列表) (返回值列表){ 执行语句 return 返回值列表 } 例子: func getSum(n1 int, n2 int) int { var res int = n1 +n2 return res 阅读全文
摘要:
协程模块概述 一、概念 可以简单的认为:协程就是用户态的线程,但是上下文切换的时机是靠调用方(写代码的开发人员)自身去控制的; 对比 首先介绍一下为什么要使用协程。从了解进程,线程,协程之间的区别开始。 从定义来看 进程是资源分配和拥有的基本单位。进程通过内存映射拥有独立的代码和数据空间,若没有内存 阅读全文
摘要:
数据类型 类型 表示 备注 布尔型 布尔型的值只可以是常量 true 或者 false var b bool = true 数字类型 整型int8, int16, int32, int64 和浮点型 float32、float64 byte就是int8, int就是int32 字符串类型 strin 阅读全文
摘要:
概述 该模块基于pthread实现。sylar说,由于c++11中的thread也是由pthread封装实现的,并且没有提供读写互斥量,读写锁,自旋锁等,所以自己封装了pthread。包括以下类: Thread:线程类,构造函数传入线程入口函数和线程名称,线程入口函数类型为void(),如果带参数, 阅读全文
摘要:
概述 什么是配置?chatGPT是这么回答的: 配置项(Configuration Item)是一个广泛使用的术语,尤其在软件开发、系统管理和IT服务管理中。它通常指的是系统或应用程序中的一个可配置的元素,可以用来调整系统或应用的行为、性能或其他特性。配置项可以是软件、硬件、文档、数据库、参数设置等 阅读全文
摘要:
介绍 在学习了sylar的C++高性能分布式服务器框架后,想把自己在学习过程中的感想记录下来。当然主要原因还是sylar的B站视频过于难以理解了,也是想加强一下自己对这个框架的理解。很多内容也是借鉴了其他大佬的博文,比如找人找不到北,zhongluqiang 日志模块概述 日志模块的目的: 用于格式 阅读全文