自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Node.js 本地音乐 API 搭建 + JSON 数据接口调用

在写第一个 Spotify 音乐仿写项目时,官方 Spotify API 使用起来比较复杂,而网上第三方 API 稳定性不高。所以这里记录一个本地搭建 Node.js 音乐 API 的学习过程,便于 iOS 或 Web 项目调用音乐数据接口进行开发和测试本地 API 仅用于学习和开发,请勿用于公开播放或商业用途。通过以上步骤,在电脑上用 Node.js 搭建了一个本地音乐 API,App 可以通过 JSON 接口获取示例音乐数据进行开发。

2025-11-25 20:16:11 726

原创 【iOS】多线程基础

多线程的使用是十分重要的知识点,在后面具体项目中与其他第三方库结合的使用也很多,还需要继续学习并加以实践)

2025-11-22 22:52:14 921

原创 【iOS】UICollectionView

UICollectionView是iOS中可以说最灵活,最强大的滚动视图组件之一(可自定义布局的多格子列表控件),其功能类似于之前学过的UITableview,UITableview只允许表格每行显示一个cell,而UICollectionView功能与作用比他更强大,更自由,我们在下面逐步写出UICollectionView和UITableview一样,都是UIScrollView的子类,天然具备滚动等功能通过本次学习,我掌握了。

2025-11-07 00:32:05 751

原创 【iOS】KVC 与 KVO 的基本了解与使用

在 iOS 开发中,我们常用 Block、Delegate、通知等方式进行数据传递,这些传值方式在我前面博客都予以介绍过【iOS】多界面传值(五大传值方式)KVC(键值编码)和KVO(键值观察)简单介绍的话就是KVC允许我们通过字符串(key)访问属性;KVO允许我们自动监听属性值的变化。它们一个负责“访问”,一个负责“观察”,是 Cocoa 动态机制的核心。Cocoa即objective-c框架体系,如UIKit,Foundation,Appkit等变量在运行时才确定其真实类型。

2025-10-20 21:05:17 910

原创 【OC】计算器的仿写

最近简单完成了一个简单的计算器的仿写,里面包含了对Masonry库布局和对MVC的使用,m层主要是用类似于c语言的栈的操作进行数据的处理,v层是使用Masonry进行布局的设计计算器其实内容不是非常多,但是内部需要限制及处理的各种细枝末节相当多,需要反复进行调试,不然程序非常容易就会崩溃。

2025-10-15 21:09:10 750

原创 【iOS】AFNetworking初步了解及使用

之前我们在暑假的天气预报项目中简单使用过苹果原生NSURLSession有关网络请求的内容,但是只是最基础的使用且用起来比较麻烦,于是学习了使用AFNetworking库(即一个第三方库,需要使用cocoapods进行导入)进行网络请求,在下面予以总结这里只是简单介绍了AFNetworking的用法,后面还会讲出与YYModel和单例模式一起使用的更多用法。

2025-09-21 17:19:04 568

原创 【iOS】ViewController的生命周期

在iOS中一般有两种ViewController,一类是用于显示内容的,比如UIViewController,UITableVIewController或者自定义的VC等,另一类是容器型的控制器,如UINavigationController(内部维护一个栈,前面博客中有所讲解,用push,pop进行控制),UITabBarController(内部维护一个数组)等。容器型 VC = 用来管理多个内容 VC 的关系(栈 or 数组)内容型 VC = 页面本身(展示内容和逻辑)

2025-09-14 18:13:48 418

原创 【OC】单例模式

在之前我们已经学习过单例模式的有关内容,但是只是最简单的单例,无法胜任多线程或者稍微多一点的情况便无法确定单例的唯一性,于是更深度的学习了单例模式首先我们知道饿汉一般是不需要担心其线程安全问题的,所以一般只考虑懒汉模式的几种写法,主要有两种在懒汉模式中一般有两种写法,分别是GCD和加锁的写法,GCD的写法是现在写法更推荐的,因为其性能极快且第一次使用后后续基本无开销,而使用加互斥锁@synchronized的方式性能较慢,且每次使用时都有锁的开销所以不常用if (!

2025-09-12 18:34:34 738

原创 【iOS】MVC设计模式

之前写程序的时候我们都是自己随意的进行文件的划分与完成,对整个项目的结构的设计没有成熟且完整的结构。今天就来说一下一个最经典的架构模式。MVC(Model-View-Controller)架构模式。MVC模式(官方推荐,缺点是Controller容易臃肿)Model:数据和业务逻辑View:界面展示Controller:桥梁,负责把 Model 的数据提供给 View,同时处理用户输入MVP模式(Model - View - Presenter)Model:数据和业务逻辑。

2025-09-10 20:20:20 641

原创 【iOS】push,pop和present,dismiss

在之前的学习中,我们发现iOS有两种用于推出新界面的常用方法,分别是push和present,但是二者存在很多区别present只能返回自己的上一级视图,而push的所有视图都是由视图栈控制,可以返回上一级,也可以返回根视图或者其他视图在iOS13之后,我们present推出的页面不会完全覆盖之前的界面,上面会留有一条缝隙,并且我们可以通过向下拖动直接关闭当前的页面。

2025-09-07 18:10:38 1349

原创 【OC】属性关键字

属性关键字是oc中基础且相当重要的知识点,之前学的时候有所接触但学的没有那么深入,这次便深入介绍一下其相关内容这次算是学习了当时没学到的部分属性关键字和深浅拷贝的更全面的内容,以后学到新的还会继续补充。

2025-09-03 22:12:35 750

原创 【iOS】折叠cell

折叠cell的实现效果即为一个可点击的cell格,未点击时显示的只有最上面的那一格,可以点击后将点击的替换最上面的那格并把这个单元格恢复为只有一格的状态,主要的步骤即为在点击时设置按钮函数来调整cell的高度。

2025-09-01 20:27:54 391

原创 【iOS】Masnory自动布局的简单学习

在之前一直都有用到视图布局,前面我用的都是手动布局,即自己计算每个视图的位置,这种方法写起来比较繁琐,现在学习了使用第三方库Masnory来进行自动布局,一般来说我们可以通过CocoaPods来安装Masonry,关于CocoaPods的安装和使用,可参考这篇文章:【iOS】Cocoapods的安装以及使用。

2025-08-28 21:17:33 1052

原创 【iOS】3GShare仿写

这个项目算是暑假中相当繁琐的一个,能更好的锻炼我们的各种传值方式和对各种控件的掌握。

2025-08-02 17:35:04 1009 1

原创 【iOS】网易云仿写

这是暑假第一周的一个稍微大型的任务,写的中间遇到了很多问题,但也学到了很多知识,在写黑夜模式时对具体情况思考不全,导致会出现各式各样的问题,但是学到了到了预加载这个新方法,受益颇多,而且还对各种传值方式进行了更具体的运用。

2025-07-26 18:20:15 1447

原创 【iOS】多界面传值(五大传值方式)

多界面传值是UI中相当重要且常见的一个知识点,要根据具体情况进行方法的选择,有时甚至需要结合起来使用,比如通知与单例结合起来使用等 ,多加使用,才能更熟练。

2025-07-21 10:22:33 844

原创 【iOS】ZARA仿写

暑假第一个的任务仿写ZARA 虽然不是特别难却有很多小细节需要注意刚开始第一个项目难度不是特别大,但是可能开始的时候对写的逻辑会不清晰从而导致写的时候会比较麻烦或者思路混乱,写的时候还是得理清思路,这样写的时候也会事半功倍。

2025-07-19 12:11:27 466

原创 【iOS】cell的复用以及自定义cell

cell的复用及自定义cell是UITableView或UICollectionView的一个重要优化机制,当用户滚动视图时,只有少量可见的cell会被创建与显示,暂时不可见的,都会缓存起来以备后面复用,这个机制主要是为了提高应用性能。(创建与销毁都是相对开销高的操作,通过复用cell,可以避免不必要的视图创建与销毁,从而提高应用的滚动性能)UICollectionView = 更自由、更强大的“多列列表”控件,适合做复杂的网格/横滑页面,如相册等。

2025-06-10 22:13:48 2106

原创 简单登录与照片墙案例

实现了一个简单的登陆界面,密码正确则登陆,错误则报错,未写注册及登录后的显示界面代码示例:ViewController.m文件运行结果:若点击输入框为出现小键盘,有可能需要在模拟器窗口点击菜单栏 I/O,进入子菜单keyboard,取消勾选Connect Hardware再进行尝试。

2025-06-08 16:56:30 428 1

原创 Objective-C常用命名规范总结

【代码】Objective-C常用命名规范总结。

2025-06-08 14:43:35 734

原创 【iOS】UI学习(一)

在xCode里创建UI项目1.打开xCode选择"iOS"->“APP”->“Next”2.给项目命名并改正语言之类的东西UILable是ui中一个展示文本的标签型组件,是UIKit框架的一部分,通常展示的是一段静态的只读文本,它可以有文本颜色、背景颜色、字体大小、对齐方式等自定义属性代码演示(在"ViewController.m中编写")UIButton可以包含文本,图片等,可以设置按钮的不同状态,自定义按钮的样式,如改变字体,文本颜色,背景颜色等运行结果:UIButton的事件处理通常通过addTa

2025-06-02 14:57:06 1065

原创 【oc】Foundation框架(下)--数组、集合、字典概述

OC集合类可以用于存储数量不等的多个对象,并且可以实现常用的数据结构,例如栈和队列等,除此之外,OC集合还可以用来保存具有映射关系的关联数组。NSSet集合类相当于一个罐子,在这里面添加的对象是无序的,所以元素不可重复NSArray集合像一个数组,是个有序,可重复的集合NSDictionary集合也像一个罐子,每项数据由key,value两个值组成,可据每项元素key值访问value(value可以重复,key不可以)

2025-05-25 15:14:04 446

原创 【oc】字符串三种实现方式及深浅拷贝具体代码判断示例

这两个知识点的具体的部分内容在我的上篇博客中已经有所给出,所以这里给出代码时直接给出讲解。

2025-05-19 19:13:30 910

原创 【oc】Foudation框架--字符串,对象复制详解

类型类名创建方式存储位置是否可变说明字面量字符串@"abc"常量区 不可变编译期确定,多个相同内容共享动态不可变字符串堆区 不可变运行时生成,内容相同也不共用可变字符串(继承自方法堆区 可变可动态修改字符串内容小字符串优化(较新系统中)小而短的字符串(如"1",系统优化)CPU 寄存器或特定指针区域 不可变高性能优化,底层存储不同。

2025-05-18 17:31:56 815 2

原创 【OC】–判断指针变量的实际类型三个函数总结

实例方法:判断对象是否是某个类或其子类的实例。类方法:通过类判断该类是否是某个类或其子类。用途:适用于检查对象的类型或类的继承关系。实例方法:判断对象是否是某个类的直接实例(不考虑继承关系)。类方法:通过类判断该类是否与指定类完全匹配(不考虑继承关系)。用途:适用于只关心对象或类是否是指定类的直接实例。类方法:判断一个类是否是另一个类的子类(只关注类之间的继承关系)。用途:适用于类之间继承关系的检查,不涉及对象实例。

2025-05-11 16:11:12 933

原创 【oc】--面向对象(下)

NSInterger: 大致相当于型整数NSUInterger: 大致相当于型整数CGFLoat:在64位平台上相当于double。

2025-05-11 16:03:37 780

原创 【OC】初步接触–面向对象(上)

封装指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的方法操作和访问内部信息。

2025-05-07 17:25:01 551

原创 【OC】初步接触–类和对象,方法详解,成员变量

oc是一门面向对象的语言,而这里面有两个重要的概念,类(class)和对象(object)。其中类是一个抽象的概念,对象是一个具体存在的实体。例如,日常我们说的某个人都是人的对象,即一个实例(instance),而人类这个统称即为一个类。oc中类的定义主要分为两个部分:接口:定义该类包含的成员变量和方法。实现:为该类的方法提供实现。本篇博客主要讲述了面向对象(上)前三节的基础内容,后续会不断完善讲解后续内容。

2025-05-05 16:36:22 757

原创 C 语言滑动窗口题型及解法

定长滑窗题目的题目都是有一个套路的,先入滑窗,更新统计的变量,如果 i < k - 1,即滑窗没满则继续continue推入元素进入滑窗然后更新所记录的答案一般记录最大/最小值最后出窗口,让i - k + 1的元素离开窗口,再更新相关统计量先初始化左右指针(代表窗口边界)和需要统计的变量,右指针移动来扩展窗口,更新统计变量,在满足一定条件(比如不超过某个限制)时持续扩展。

2025-04-27 13:58:02 2081

原创 力扣各种螺旋矩阵问题解法

在力扣上有螺旋矩阵的各种问题,将一维变成二维,将二维变成一维,既有各种模拟过程循环中的各种问题,还有的行列的内存分配让未接触的人感到晦涩难懂,这篇文章主要讲解这类问题及其具体内容题目:1.2.3.由于主要是对题目及其内部细节的讲解,我们直接进入正题。

2025-04-20 15:02:35 2052

原创 C语言链表

链表是一种基本的数据结构,它由一系列节点组成,每个节点包含一个值和指向下一个节点的指针。链表的特点是可以动态添加和删除节点,而不需要预先知道数据的数量。与数组不同,链表中的节点不一定是连续的存储空间,因此可以有效地利用内存空间。(链表的优点是可以动态添加和删除节点,因此非常适用于需要频繁插入和删除数据的场景。链表的缺点是访问操作的时间复杂度为O(n),而且需要额外的空间存储节点的指针,因此在需要频繁访问数据的场景中,效率可能不如数组。int val;//数据域//指针域int val;

2025-04-12 22:28:40 960

原创 西邮3g实验室二面题

刚开始看到这题只能想到无脑for,在舍友的提示下发现可以用类似桶排序的方法来做,用字符ASCLL码的性质,用数组来记录字符的数量,找到第一个为1的数组立刻return,一直没找到则输出no。

2025-04-06 13:18:21 318

原创 单链表基本概念及常用内存管理函数

保证数据逻辑顺序不变的前提下新的储存方式每一个元素称为一个结点每个节点包括两部分1.用户需要的实际数据2.下一个节点的地址表头:存放第一个节点的地址表尾:它的地址存放NULL例。

2024-11-10 11:48:44 324

原创 C语言-文件的简单读出与写入符号

C语言-文件的简单读出与写入符号FILE(文件的简单读出与写入的特定函数)前置:必须有头文件"#include<stdio.h>"如#include<stdio.h> int main(int a,char const *a[]) { FILE *fp=fopen("12.in","r"); if(fp){ int num; fscanf(fp,"%d",&num); printf

2024-11-09 11:46:29 306 2

空空如也

空空如也

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

TA关注的人

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