自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我叫柱子哥

技术探讨 共同进步

  • 博客(161)
  • 资源 (2)
  • 收藏
  • 关注

原创 iOS中的多线程开发技术第一篇(GCD)

多线程编程是现代应用程序开发中的一个重要部分,尤其是在 iOS 开发中,它可以帮助我们提高应用的性能和响应速度。iOS 提供了多种多线程编程技术,包括 GCD(Grand Central Dispatch)、NSThread、NSOperation 和 pthreads。本文将详细介绍这些多线程技术,帮助你理解并掌握它们的使用。

2024-07-24 02:21:14 1292

原创 Flutter禁止及交互的两种方式

这是我知道的两种禁止点击事件的方法,两种方式都可以实现禁止点击事件的效果,可以根据需要来选择,如果你有其他的方法,可以给笔者留言,大家一起学习,一起进步。

2020-07-02 00:08:34 5561 1

原创 Flutter实现iOS TabBarController效果和android TabHost效果

先上截图, 如何实现下图的效果呢。对于iOS开发者,我们可以使用UITabBarController来实现,对于android开发者,我们可以使用FragmentTabHost来实现。在Flutter中并没有这两个控件,进入正题,我们看看在Flutter中我们如何使用Flutter中的PageView来实现这种效果。

2020-06-22 09:43:31 1030 1

原创 UIScrollView的Content Size, Content Inset属性

做iOS有好长时间了,今天再次写到UIScrollView的时候再次遇到了ContentSize,ContentInset,Scroll Indicator等属性,想起刚刚入门的时候的困惑,决定把它写下来,做个记录,以后忘记的时候也可以温故知新。也希望给初学者一个好的借鉴,少走点弯路,嘿嘿,不多说了,进入正题,第一次写博客,语言组织可能不太好,如果错误或者说的不准确的地方还望各位大神们多多指正。

2014-12-27 16:15:26 1663 1

原创 Swift中的frozen关键字

它通过限制类型的继承和扩展,允许编译器做出更为积极的优化。它的作用是告诉编译器,某个类或结构体是不可扩展的,意味着这个类型不会再被子类化或修改,这样编译器可以做出一些优化。

2025-03-18 03:23:23 287

原创 RxSwift 学习笔记第五篇之RxSwift中的操作符

在 RxSwift 中,Operator(操作符)用于对数据流进行处理,使得异步编程更加直观和易读。Operators 是 Rx 的核心组成部分,它们使得你能够通过链式调用对数据流进行转换、过滤、组合等操作。RxSwift 的 Operators 让开发者能够更轻松地处理异步事件,提高代码的可读性和维护性。本文将介绍 RxSwift 中常见的几种操作符,并通过示例展示它们的使用场景,帮助你更好地掌握 RxSwift 中 Operator 的运用。一、Operator 的使用场景。

2025-03-18 02:52:55 761

原创 RxSwift 学习笔记第四篇之RxSwift在项目中的简单应用

在上面的两篇文章中,我们了解到了RxSwift中的Observable和Observer,本篇文章我们主要介绍下RxSwift项目中的使用。

2025-03-17 22:40:16 501

原创 RxSwift 学习笔记第三篇之RxSwift的Observer

在 RxSwift 中,订阅者(Subscriber) 负责接收 Observable 发送的数据流并对其进行处理。没有订阅者时,Observable 不会被触发(Hot Observable 除外)。分析:订阅后 Observable 开始执行订阅者 subscribe 收到 next 事件,然后 completed我们可以调用观察者的subscribe直接订阅。特点:event 可能是 .next(value), .error(error), .completed。

2025-03-16 04:25:15 994

原创 Swift 中 associatedtype 的用法详解

在 Swift 的协议中,我们无法直接使用泛型 <T>,但可以使用 associatedtype 关键字来声明一个占位类型,让协议在不确定具体类型的情况下仍然能够正常使用。

2025-03-15 00:51:56 899

原创 RxSwift 学习笔记之RxSwift的调试

在 RxSwift 中,调试(debug)是非常重要的,尤其是当你的流变得非常复杂时。RxSwift 提供了很多有用的工具和操作符来帮助你在开发过程中进行调试和跟踪事件流。一、RxSwift 中的调试工具。

2025-03-14 04:23:24 450

原创 RxSwift 学习笔记第一篇之RxSwift的安装和概念

这篇文章主要讲解RxSwift中的一些常用术语和安装方式。

2025-03-14 03:34:15 601

原创 RxSwift 学习笔记第二篇之Observables

这篇博客主要介绍Observables的用法。是 Rx的核心。在 Rx中我们看到“”、“”和“Sequence”在 Rx 中互换使用,其实它们是一个东西。在RxSwift 中,我们把它们统一成为序列。发出事件(数据流)被订阅响应事件.next(value):发送一个可能的值.error(error):发送错误,流终止.completed:完成,流终止。

2025-03-14 00:38:00 1238

原创 二级公共基础之数据库设计基础(一) 数据库系统的基本概念

这篇博客主要数据库的一些基本概念。

2025-02-23 04:29:57 181

原创 二级公共基础之数据结构与算法篇(二)线性表及其顺序存储结构

线性表(Linear List)是数据结构中的一种基本结构,它是由相同类型的数据元素构成的线性序列。线性表中的每个元素(除了第一个和最后一个)都有唯一的前驱和后继。线性表的特点是元素之间的关系是线性的,即每个元素(除第一个外)都有一个直接前驱,每个元素(除最后一个外)都有一个直接后继。

2025-02-23 01:49:56 41

原创 二级公共基础之数据结构与算法篇(三)栈和队列(顺序存储结构表示)

栈(Stack)是一种特殊的线性表,它所有的插入和删除都限定在表的同一端进行。允许插入和删除的一端称为栈顶。不允许插入和删除的一端称为栈底。当栈中没有数据元素时,称为空栈。队列(Queue)是一种特殊的线性表,它所有的插入都在表的一端进行,所有的删除都在表的另一端进行。- 允许插入的一端称为队尾。- 允许删除的一端称为队头。- 当队列中没有数据元素时,称为空队列。

2025-02-23 01:33:06 139

原创 二级公共基础之数据结构与算法篇(四)线性链表

当我们使用线性表的顺序结构存储线性表的时候,具有随机访问速度快、存储效率高、实现简单、内存管理方便、缓存命中率高等特点。这篇博客主要介绍下使用链式存储结构表示线性表。

2025-02-23 01:06:27 42

原创 二级公共基础之数据结构与算法篇(五)树和二叉树

这篇博客主要介绍树和二叉树。树是一种常见的数据结构,广泛应用于计算机科学和工程领域,如文件系统、数据库索引、表达式解析等。二叉树是树的一种特殊形式,具有许多独特的性质和应用。二叉树可以为空,也可以由一个根节点和两个互不相交的子树组成,分别称为左子树和右子树。

2025-02-22 21:27:17 837

原创 二级公共基础之数据结构与算法篇(七)排序技术

排序是数据处理的重要内容。所谓排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。排序的方法有很多,根据待排序序列的规模以及对数据处理的要求,可以采用不同的排序方法。本节主要介绍一些常用的排序方法。

2025-02-21 05:35:44 778

原创 二级公共基础之数据结构与算法篇(六)查找技术

查找就是在某种数据结构中,找出满足指定条件的元素。查找是插入和删除等运算的基础,是数据处理的重要内容。由于数据结构是算法的基础,因此,对于不同的数据结构,应选用不同的查找算法,以获得更高的查找效率。本节将对顺序查找和二分法查找的概念进行详细说明。

2025-02-21 03:59:50 37

原创 二级公共基础之计算机基础篇(一) 计算机的发展简史

这篇文章主要讲解计算器基础概述的部分。

2025-02-20 01:43:23 44

原创 Java 中的抽象类和接口详解以及易考知识点

在 Java 中,抽象类(abstract class)和接口(interface)是面向对象编程中常用的机制,主要用于 定义规则、抽象共性、提高代码复用性。它们虽然有相似之处,但在使用上有很大的区别。1.什么是抽象类抽象类是使用 abstract 关键字修饰的类,不能直接实例化,通常用于定义一些通用行为,供子类继承并实现。1.抽象类的特点Java中抽象类的特点如下:✅可以有普通方法(带具体实现的方法)。✅可以有抽象方法(没有方法体,需子类实现)。✅可以有成员变量。

2025-02-19 07:51:28 28

原创 Java中的String类的易错题

在 Java 中,String 类用于表示字符串,是 Java 最常用的类之一。String是不可变的(immutable),即字符串一旦创建,其值就无法更改。这篇博客主要介绍Java中的String类的用法。1.String 的基本特点不可变性(Immutable):一旦创建,字符串对象的值就无法更改。存储在字符串常量池(String Pool):字符串字面量会被存储在JVM的字符串池中,避免重复创建。支持字符串操作:提供了丰富的方法,如拼接、比较、查找、替换等。

2025-02-19 07:28:49 47

原创 Java 中的 static 和 final 关键字详解 [特殊字符]

在 Java 中,static 和 final 是两个常用的关键字,它们分别用于控制类、方法和变量的行为,在不同的场景下具有不同的作用。1.static 关键字static关键字用于修饰变量、方法、代码块、内部类,表示它属于类本身,而不是某个具体的对象。1.static变量(静态变量)静态变量属于类而非实例,所有对象共享一个静态变量。// 静态变量,所有实例共享count++;

2025-02-19 04:46:57 161

原创 Java中的内部类知识点以及常错题

在 Java 中,内部类(Inner Class) 是定义在另一个类内部的类。它能够访问外部类的所有成员,包括 private 变量,通常用于逻辑上紧密相关的类,以提高封装性和可读性。

2025-02-19 04:33:07 21

原创 Java中的条件运算符和条件表达式

在 Java 中,条件运算符和条件表达式主要用于控制程序的执行流程。

2025-02-18 02:07:22 33

原创 二级公共基础之数据结构与算法篇(一)数据结构的基本概念

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考栈(Stack)是一种受限的线性数据结构,它遵循后进先出(LIFO, Last In First Out)的原则,即最后插入的元素最先被移除。可以把栈想象成一个只能从**一端(栈顶,Top)**进行插入和删除操作的容器。

2025-02-10 21:27:27 20

原创 二级公共基础之数据结构与算法(一)

这篇文章主要介绍Java中的算术运算符和算术表达式。1.Java 中的算术运算符和算术表达式在 Java 语言中,算术运算符(Arithmetic Operators) 是最基础的运算符之一,主要用于执行数学计算。算术运算符可以与 整数(int, long)、浮点数(float, double) 等数值类型配合使用。本文将详细介绍 Java 中的算术运算符、运算符的优先级以及算术表达式的用法。1.Java 中的算术运算符。

2025-02-09 14:02:26 843

原创 cocoapods库引用图片资源的全流程(超详细)

我们在开发过程中,常常会使用第三方库或者使用cocoapods创建的自己的私有库,有时候我们需要用到一些图片资源,今天这个教程从创建开始展示下cocoapods私有库引用私有库的完整流程。1.创建私有 Pod 库1.1 创建 Pod 库首先我们在自己的电脑上选择一个目录,然后使用CocoaPods 的 pod lib create 命令创建一个新的 Pod 库,具体的操作过程如下:以笔者的电脑为例,我想在桌面上创建一个cocoapods私有库,首先进入终端,cd 到桌面目录:cd desktop。

2025-02-07 21:38:17 64

原创 iOS开发设计模式篇第二篇MVVM设计模式

在本文的代码中,我们提供一个初始化的方法,把Model中的数据转成要展示的name和age属性,同时我们通过KVO的方式监听UserModel中的变化,实时获取变化之后的最新值。MVVM 是一种强大的设计模式,在 iOS 开发中,特别是复杂的应用程序中,它能显著提高代码的可维护性和扩展性。ViewModel(视图模型层):负责将 Model 转化为 View 可以使用的数据,同时接收 View 的操作并更新 Model。在本文的例子中,Model表示示例中使用到的数据模型,即用户名和年龄。

2025-01-23 01:15:30 1267

原创 常用排序算法之插入排序

插入排序(Insertion Sort)是一种简单且直观的排序算法,常用于小规模数据的排序或作为其他复杂排序算法的一部分(如快速排序的小数组优化)。本文将详细介绍插入排序的基本原理、实现代码、时间复杂度及其适用场景,帮助你轻松掌握这一算法。

2025-01-21 02:17:13 806

原创 iOS中的多线程开发技术第四篇之IO操作

在 iOS 开发中,数据访问的多线程环境非常普遍,例如缓存系统、数据库查询、文件操作等。对于多读少写的场景,设计一个高效且线程安全的方案至关重要。本文将深入介绍多读少写的设计思想,并结合实际代码示例进行详细讲解。

2024-12-05 01:41:31 839

原创 深入理解Flutter生命周期函数之StatefulWidget(一)

在Flutter中,生命周期函数是管理StatefulWidget状态的关键机制。通过生命周期函数,我们可以控制Widget的初始化、更新和销毁过程,使得应用的状态管理和资源控制更加灵活。本文将详细介绍Flutter中的生命周期函数,帮助你更好地掌握Flutter应用的生命周期。

2024-11-15 05:22:39 1759

原创 Xcode 16 pod init失败的解决方案

我们使用Xcode创建新项目之后,执行pod init报错。我们看一下如何解决。

2024-11-14 19:20:26 1049

原创 23种设计模式的Flutter实现第一篇创建型模式(一)

这篇文章主要讲述23种设计模式使用Flutter如何实现。

2024-11-12 17:00:08 1247

原创 Dart中的一些常用注解

在 Flutter 中,Dart 提供了多种注解用于增强代码的表达能力,帮助编译器或分析工具理解代码结构,提升可读性和安全性。标识一个参数是必填的,用在函数或构造函数的命名参数中。当参数使用了 @required,如果调用时未传递该参数,分析器将发出警告。// title 是必填参数注意:@required 已经被废弃,现在可以直接使用 Dart 语言自带的 required 关键字。用于重写父类方法,标识子类对父类方法进行了重写。

2024-11-09 05:22:46 592

原创 Flutter 中 Provider 的使用指南

它使用 InheritedWidget 作为底层实现,通过提供一种订阅与更新的机制,能够让应用在状态变化时自动刷新对应的 UI,极大地提升了开发体验。在应用的根组件中使用 ChangeNotifierProvider,将 Counter 类实例注入到 Widget 树中,使整个应用都可以访问它的状态。在这个例子中,Consumer 会自动监听 Counter 对象的变化,并在 count 值更新时重建它内部的 UI。在使用 Provider 之前,我们需要定义一个简单的状态类。

2024-11-08 01:56:20 1984

原创 Swift中的Combine

Combine 是 Apple 在 iOS 13 中引入的响应式编程框架,它用于处理 Swift 中的异步操作和数据流。通过 Combine,开发者可以将异步操作(例如网络请求、用户输入、通知等)组合成数据流,并对其进行操作和观察。网上搜了下Combine的教程,发现要么是翻译的Apple的文档,要么SwiftUI+Combine直接绑定起来使用,这无疑给没有使用过SwiftUI的同学增加了学习的成本,今天决定写一下自己对Combine的理解希望能帮助到准备入门Combine的同学们。

2024-11-08 01:21:07 2374

原创 Flutter中有趣的级联语法

在 Flutter(Dart)中,级联操作符(cascade notation) 使用两个点 .. 表示,可以让你在对象上连续调用多个方法或设置多个属性,而不需要在每一步都重复对象的名字。这种语法在链式调用和构建复杂对象时非常有用。

2024-11-05 19:46:01 689

原创 Flutter中的Extension关键字

在 Dart 和 Flutter 中,extension 关键字允许开发者为现有的类添加新的功能,而无需修改原有类的代码。这种特性叫做扩展(extension),它使代码更加灵活且易于组织,有助于避免继承带来的复杂性。以下是关于 extension 的详细介绍。

2024-11-04 20:43:37 631

原创 深入了解 Flutter 中的泛型:让代码更灵活更安全的关键

泛型(Generics)是编程语言中一种关键机制,它允许我们在类、接口、方法等结构中使用类型参数,而不必指定具体的类型。在 Flutter 中,泛型可以帮助我们编写出更灵活的代码,同时提升类型安全性。Flutter 中广泛使用了泛型,使得框架中的许多工具和库具备更强的灵活性。比如,Flutter 中的 List 就是一个泛型类,我们可以指定列表存储的类型,让它们在编译时确定类型,避免运行时类型错误。这篇文章主要介绍Flutter中的泛型(Generics)。

2024-11-04 02:05:01 967

RXSwift实现的登陆验证

验证RxSwift的用法

2025-03-07

iOS开发+移动端+cocospods库引用图片资源+cocoapods私有库

iOS开发+移动端+cocospods库引用图片资源+cocoapods私有库

2025-02-07

移动+Swift(MVVM)+Swift+MVVM的实例代码(使用KVO实现)

这篇博客https://blog.youkuaiyun.com/ZCC361571217/article/details/145312984附带的实例代码,主要讲解MVVM的用法

2025-01-23

Flutter+Flutter+Getx+GetX中路由管理用法,跟博客一起的Demo

https://blog.youkuaiyun.com/ZCC361571217/article/details/136696053博客使用的demo

2024-10-31

Flutter+Getx+状态管理、路由管理、getx用法+用于展示Getx用法

博客:https://blog.youkuaiyun.com/ZCC361571217/article/details/143276944 附带的示例代码,这里是使用getx实现的功能

2024-10-28

Flutter+Getx+状态管理、路由管理、getx用法+用于展示Getx用法

博客:https://blog.youkuaiyun.com/ZCC361571217/article/details/143276944 附带的示例代码

2024-10-28

移动端+OC/Auto Layout+自动布局 UIStackView+iOS UIStackView

这个链接是一个demo ,主要是UIStackView嵌套的一个实例代码。在iOS开发的过程中,我们使用UIStackView是自动布局的一种不使用约束而进行自动布局的一种方式。

2024-08-14

Flutter+getx+dart+使用getx实现鉴权

在 Flutter 中,使用 GetX 可以很方便地实现中间件鉴权(Authentication)。中间件可以在导航之前拦截路由请求,并进行相应的处理,例如检查用户是否已登录。如果未登录,则可以重定向到登录页面。 这个demo是通过一个登陆的例子展示下Getx如何实现鉴权的功能。 详细的使用可以参考这篇博客:https://blog.youkuaiyun.com/ZCC361571217/article/details/140535402

2024-07-19

跨平台开发+Flutter+intl+国际化

Flutter使用intl实现国际化。

2024-07-16

移动端国际化+flutter+Flutter getx+GetX实现国际化

Flutter使用GetX框架实现国际化的Demo.具体的文章可以查看:https://blog.youkuaiyun.com/ZCC361571217/article/details/140390890?spm=1001.2014.3001.5502

2024-07-16

数据结构+顺序表的C语言实现

本工程实现了严蔚敏 《数据结构 C语言》中顺序表的实现以及常用的操作。包括顺序表的初始化、销毁、求表长、查找、查询前驱节点、查询后继节点、插入、删除、遍历、打印等功能。并且写了测试代码,对每个函数都做了测试。希望能帮到正在学习数据结构的您。我这里用的IDE是XCode,如果你使用的是Windows系统,只需要把代码拷贝到您的工程中,重新编译运行下节即可。如果遇到问题,可以在我博客下面留言。 // 初始化 int initSeqList(SeqList * seqList); // 销毁顺序表 void destroySeqList(SeqList *seqList); //// 置空线性表 void clearSeqList(SeqList *seqList); // 判断是否为空表 int seqListIsEmpty(SeqList *seqList); // 求表长 int seqListLength(SeqList *seqList); ////查找 int getSeqListElementInPosition(SeqList *seqList,int pos

2024-04-24

Flutter+Flutter GetX状态管理+GetX状态管理+Getx状态管理

目前,Flutter有几种状态管理器。但是,它们中的大多数都涉及到使用ChangeNotifier来更新widget,这对于中大型应用的性能来说是一个糟糕的方法。你可以在Flutter官方文档中查到,ChangeNotifier应该使用1个或最多2个监听器,这使得它实际上无法用于任何中等或大型应用。 其他的状态管理器也不错,但有其细微的差别。 BLoC非常安全和高效,但是对于初学者来说非常复杂,这使得人们无法使用Flutter进行开发。 MobX比BLoC更容易,而且是响应式的,几乎是完美的,但是你需要使用一个代码生成器,对于大型应用来说,这降低了生产力,因为你需要喝 Flutter主要的三个用途:1.路由管理 2.状态管理 3.路由管理,这篇资源介绍的事使用GetX进行状态管理,包含响应式状态管理的概念、Obx的用法、GetController的用法、GetBuilder的用法、以及GetX和其他优秀的状态管理三方库例如bloc等混合使用的方法、GetX的优势等用法,建议一边看文章的介绍,一篇看这篇资源文件,如果这篇文章能帮到你,本资源上传的目的就达到了,麻烦给个好评,不胜感激!

2024-03-16

flutter+getx+getx路由管理+getx用法

优快云博客Flutter中getx路由管理的demo资源。 这里主要是讲解Flutter中GetX框架路由管理的用法。 包括GetX的安装,计时器Demo使用getx改造,GetX的路由管理三个方面。 GetX的路由管理又分成普通路由导航、别名路由导航、中间件、免context导航四个模块,对应的文章地址链接如下:https://iflycaizhang.blog.youkuaiyun.com/article/details/136696053?spm=1001.2014.3001.5502,如果这篇文章能帮到您,麻烦给个五星评分谢谢,感激不尽,谢谢哈。

2024-03-16

iOS中MVC设计模式实例代码

iOS中MVC设计模式代码 iOS+设计模式

2023-11-08

iOS framework打包实例demos

iOS打包framework的实例代码,Swift和OC实例都有,详细的内容可以看博客内容 iOS打包framework的详细步骤如下(Swift和OC通用): 1.创建framework项目 2.配置项目打包参数 3.创建测试代码(OC需要把头文件移动到public 中,Swift需要添加open修饰符) 4.创建合并真机和模拟器的合并脚本 5.创建一个测试工程,导入通过我们上面的步骤创建的framework,测试Demo 备注:作者使用的开发环境配置如下: XCode版本号 14.3 Mac !3.5

2023-07-31

flutter路由跳转和传值方式demo

内容概要:这里写了一个demo,描述了Flutter开发过程中路由跳转的传值方式,记录下,希望能够帮到那些准备使用Flutter开发软件的开发者。 适合人群:准备刚入行的新手小白或者有经验的大神做个备份

2022-10-11

iOS动画高级讲解

iOS动画高级特性 如果你想深入的了解iOS中的动画,这本书将会是非常不错的选择哦

2016-02-28

OpenGL(iOS版本)

简单的openGL ,如果你想学会iOS绘图,这本电子书是你无悔的选择

2014-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除