自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈iOS---block

blocks是C语言的扩充功能。用一句话来表示Blocks的扩充功能:带有自动变量(局部变量)的匿名函数。

2023-03-05 19:00:53 475 1

原创 iOS——GCD

摘自苹果的官方说明是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可统一管理,也可执行任务,这样就比以前的线程更有效率。GCD用非常简洁的记述方法,实现了极为复杂的多线程编程。

2023-02-12 19:40:29 626 2

原创 《Effective Objective-C 2.0》第三章总结

开源社区以及开源组件随着iOS开发而流行起来,所以我们 经常会在开发自己的应用程序时使用他人的代码。所以我们要把代码写的清晰一些,以便其他开发者能够迅速而方便的将其集成到他们的项目里。Object-C没有其他语言那种内置的命名空间机制,所以我们在起名时要设法避免潜在的命名冲突。如果发生命名冲突,那么应用程序的链接过程就会出错。比无法链接更糟糕的情况是,在运行期载入了含有重名类的程序库。此时,“动态加载器”就遭遇了“重名符号错误”,很可能令整个程序崩溃设计类的时候,应充分运用属性来封装数据。

2023-01-15 18:36:28 569

原创 《Effective Objective-C 2.0》第一章总结

在头文件。

2023-01-08 00:03:25 320

原创 iOS----MVVM模式

提到MVVM框架我们很容易想到MVC框架,iOS中,我们使用的大部分都是MVC架构,虽然MVC的层次明确,但是由于功能日益的增加,代码的维护,更多的代码被写在了Controller中,这样Controller就显得非常臃肿。为了给Controller瘦身,减少 View Controller 的复杂性并使得表示逻辑更易于测试。后来又从MVC衍生出了一种新的架构模式MVVM架构。

2022-12-31 17:33:32 4105

原创 iOS调用系统相册和相机

在写项目的时候,在更换头像时需要从相册中获取图片,这就涉及到调用系统的相机或相册来进行相关操作,因此我先提前学习一下。这里需要用到。

2022-12-18 22:08:58 554

原创 往git上上传代码

因为要完成小组的项目需要用到git,所以我提前学习了一下git的使用。

2022-12-11 18:56:10 1318

原创 知乎日报总结

1.时间随着下拉刷新后再上拉会变的问题,将之前设置的变量i改成了section就解决了,在cell里写东西应该学着善于利用section和row 的关系。2.imageview的点击事件函数是写在view里,之前以为是像button的响应事件函数一样是写在controller里,但是发现点击没有响应,后来知道是要写在view里,然后通过协议函数传值到controller里进行相应代码实现。3.headview的滚动式图不能滚动,这里是因为犯了个极其低级的错误,是在初始化view时没有定义frame。4.向右

2022-12-05 22:29:04 122

原创 iOS--- FMDB

FMDB是iOS平台的SQLite数据库框架。FMDB以OC的方式封装了SQLite的C语言API。

2022-11-21 16:08:13 872

原创 知乎日报---第四周总结

1.点进去的页面需要用到第一个页面的controller页面的数组,这里需要传值,要注意的是传值的顺序,应该是在第一个页面的C里进行页面跳转时,通过属性传值将它的数组传给点进去的页面的C里的数组,然后再由C传到它的V。2.在写点进去的设置这个页面时,用的是自定义cell,所以设置tableview类型时,不像非注册的cell呢样每组的下面会自动有间隔,为了自定义cell也显示出来呢个灰白色的间隔样式,我就在每组的下面加了footerView,这样就可以了。1.向下滑动刷新时显示小菊花代表加载。

2022-11-13 22:27:17 168

原创 知乎日报--第三周总结

1.在设置动态cell时,因为将请求到的latest数据和before数据的两个字典存到了一个新数组里,然后没考虑好before数据后面再请求来的数据放在哪,导致存取十分不方便,后来想的解决办法是,把before每次请求来的数据转成字典后统一存放在一个数组中(也就是数组每一个元素都为过去某一天的数据,字典形式),然后再将这个数组和存储latest数据的字典统一放在最开始提到的新数组中即可,这样字存储十分清晰,存取也特别方便🤗。而且之前拖动刷新的位置写的有问题,应该是写在已经结束拖动这个方法里。

2022-11-07 22:38:45 181

原创 知乎日报--第二周总结

这周主要把第一周没有完成的东西完成了,然后写了刷新但还是存在一些乱七八糟的问题需要解决😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭😭1.上周最上面的时间没有实现这周实现了。获取当前时间并把时间转为字符串// HH是24进制,hh是12进制 formatter . dateFormat = @"yyyy-MM-dd HH:mm:ss";注:使用日期说明符来设置日期格式EEEE:“星期”的全名(比如Monday)。如需缩写,指定1-3个字符(如E,EE,EEE代表Mon)。MMMM。

2022-10-30 21:22:44 125

原创 仿写知乎日报--第一周总结

第一周我完成了一个界面的部分显示部分。

2022-10-23 17:49:02 194 1

原创 Manage封装一个网络请求

在进行网络请求时,我们可以用单例模式,创建一个全局的Manage类,用实例Manage来执行网络请求方法,顺便用Manage传递请求数据,在model里完成数据解析。

2022-10-16 15:25:08 107

原创 JSONModel的使用

一个解析JSON数据的开源库,可以将JSON数据直接解析成自定义的modelJSONModel是用写的开源库。它包含了接受发送、解析JSON数据,用JSON数据驱动初始化你的类,还能够检验JSON和嵌套模型等功能。

2022-10-14 23:14:23 1473

原创 【Objective--C】--引用计数

引用计数的原理:引用计数可以有效的管理对象的生命周期,当我们创建一个新对象的时候,它(该对象所在的内存块)的引用计数为1,当有一个新的指针指向这个对象时,我们将其引用计数加1,当某个指针不在指向这个地址时,我们将其应用计数减1,当对象的引用计数变为0时,说明这块内存不在被任何指针指向,这个时候系统就会将对象销毁,回收内存。对于用alloc/new/copy/mutableCopy方法生成并持有的对象,或者用retain方法持有的对象,由于持有者是自己,所以在不需要该对象时需要将其释放。

2022-09-25 17:52:09 208

原创 c语言--栈和队列

栈的入栈和出栈操作通常用指针top指向栈顶的位置,用指针bottom指向栈底,栈顶指针top动态反映栈的当前位置。栈是一种特殊的线性表,因此栈可采用顺序存储结构存储,也可以使用链式存储结构存储。栈中的数据元素用一个预设的足够长的一维数组来实现:。栈底位置可以设置在数组的任意端点,用来作为栈顶指针。若现在有一个栈,StackSize是5,则栈的普通情况、空栈、满栈的情况分别如下图所示:通常将0下标端设为栈底,这样空栈时栈顶指针s->top = -1;入栈时,栈顶指针s->top++;出栈时,s->

2022-09-24 20:22:29 1952

原创 iOS--present和push

由视图栈控制,每一个视图都入栈,调用之前的视图则需要出栈,可以返回上一级,也可以返回到根视图,其他视图,即可返回任意一层,一般用于同一业务不同界面之间的切换。注意:push以后会在navigation的left bar自动添加back按钮,它的响应方法就是返回。管理的视图控制器堆栈,在window下可以以叠加的方式展示,当顶层的view透明时可以看到底层的view,但只有顶层的view可用户交互。弹出的视图是模态视图(我对模态视图的理解大概就是一个临时视图),只能逐级返回,一般用于不同业务界面的切换。

2022-09-18 19:22:29 641

原创 iOS--ViewController的生命周期

NSLog(@"first页面的viewDidLoad");[ testButton setTitle : @"按钮" forState : UIControlStateNormal ];NSLog(@"first页面的loadView");NSLog(@"first页面的viewWillAppear");NSLog(@"first页面的viewDidAppear");NSLog(@"first页面的viewWillDisappear");

2022-09-18 17:54:36 1613

原创 iOS—MVC

2、 Controller在接收到View传过来的交互事件(View就是完成让人和程序的交互的呀,比如按B1按钮)之后,经过一些判断和处理,把需要Model处理的事件递交给Model处理(比如刚才的例子中的保存到数据库),Controller对Model使用的是API;按照上面的原理,我们知道了M、V、C之间的各司其职——Model不保存控件,View不做数据库操作(但这个也不是绝对,如果需要View做一些数据缓存工作,还是需要保存一些临时数据的),而Controller就充当了两者之间的协调器、中转器。

2022-09-12 18:37:23 843

原创 iOS-折叠cell

思路:通过按钮的事件函数来控制tableview的高度,当按钮未被选中时,只显示一行即tableview的尺寸高度为一行的高度,当按钮被选中时,显示展开后的所有单元格的信息,即tableview的高度为所有单元格的高度。先定义三个属性,用可变数组来存储单元格的信息,从而使自定义cell的不同行显示不同的信息。折叠cell即可以实现单元格的收起和展开。

2022-09-02 23:45:51 485

原创 iOS-属性关键字

如果不可变对象用strong修饰的话,由于strong修饰属性在设置新值时,在setter方法中保留新值、并释放旧值,将新值设置上去,此时与原对象指向的是同一地址。strong 是对象的默认属性关键字,此特质表明该属性定义了一种“持有关系”,为这种属性设置新值时,设置方法既会先保留(retain)新值,并释放(release)旧值,然后再将新值设置上去。当原对象为可变对象时,将原对象赋给strong修饰的不可变对象,修改原对象,那我们不可变的对象的值也会随之改变。

2022-09-02 21:46:12 869

原创 iOS之懒加载

我们使用的iOS设备其内存都有一定的限度,如果在程序启动时就将程序内的所有资源(数据,图片,视频)都加载完,那么有可能耗尽我的iOS设备的内存。懒加载也称延迟加载(比如控制器的view的创建),就是在开发中,当程序启动时不一次性加载所有的资源,而是在需要一些资源的时候程序才去加载这些资源(效率低,占用内存小),所谓的懒加载,其实就是对实例的getter方法的重写。...

2022-08-07 21:48:55 1499

原创 属性传值和协议传值

属性传值和协议传值

2022-07-29 22:00:21 138

原创 iOS简单的界面制作(第一周)

无限轮播图每次按下按钮时判断当前屏幕上显示的图片是第几张,如果是第一张且按下了左翻按钮,则直接跳转到最后一张,如果是最好一张且按下了右翻按钮,直接跳转到第一张。需要用到UITableview,因为在“我的”页面,大致是由一个个单元格顺序排列。想要做一个图片轮播器得先创建一个滚动视图,将其添加在“主页”视图中显示。需要将上述代码写在SCeneDelegate.m文件中的第一个函数中。需要写一个简单界面,第一个界面为“首页”,第二个界面为“我的”。创建两个按钮来进行翻页,同时满足无限轮播的效果。........

2022-07-25 08:24:48 1061 4

原创 深复制与浅复制

浅拷贝:只创建一个新的指针,指向原指针指向的内存深拷贝:创建一个新的指针,并开辟新的内存空间,内容拷贝自原指针指向的内存,并指向它假设我们要对一个不可变的对象进行不可变copy(原来的对象不可变,新对象也不可变)。就没必要给新对象新建一块内存,反正大家都不可以对这个对象进行改变,那都使用一个就可以。所以iOS系统规定浅拷贝引用计数器加1就行。而需要给新对象开闭内存空间的,就是深拷贝。浅拷贝即指针拷贝,可以认为是给一只狗加了一条绳子;深拷贝不但拷贝了对象的指针,还在系统中在分配了一块内存用来存放拷贝对象的

2022-06-12 17:25:29 3387

原创 iOS之包装类、description方法、==或isEqual

这里写目录标题前言三个类型包装类NSValue 和 NSNumber包装类代码示例description 方法1.description 方法简介2. 重写description== 或 isEqual : 方法isEqual的重写前言Objective- C提供了NSValue、NSNumber来封装c语言的基本类型,这样就可以让他们具有面向对象的特征三个类型NSInteger:大致等于long型整数NSUInteger:大致等于unsigned long 型整数CGFLoat:大致相当于d

2022-06-01 13:35:20 2624

原创 iOS之多态

前言oc指针类型的变量有两个:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定,如果编译时类型和运行时类型不一致,就可能出现所谓的多态。一、多态是什么?多态一般都要跟继承结合起来说,其本质是子类通过覆盖或重载父类的方法,来使得对同一类对象同一方法的调用产生不同的结果。这里需要辨析的地方在:同一类对象指的是继承层级再上一层的对象,更加泛化。二、多态的原理1.动态绑定动态绑定动态类型能使程序直到执行时才确定对象的真实.

2022-05-29 19:54:33 1035

原创 学生管理系统总结

文章目录学生管理系统总结登录注册文件的读取排序总结学生管理系统总结登录注册首先定义一个结构体用来存储用户的账号和密码,如下:typedef struct Account { char accnum[20]; char key[20]; struct Account* next;}Acc;void sturegister(node* head) { printf("欢迎来到学生管理系统\n请先注册\n"); int count = 0,flag = 0;

2022-05-22 18:40:56 247

原创 文件的相关操作

文章目录前言一、文件是什么?二、文件1.文件的分类2.文件名二、文件的打开和关闭1.文件指针2.文件的打开与关闭函数3.文件的顺序读写总结前言当我们在编写一个项目的时候,自然而然想到要把之前写入的数据保存起来。而只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。此处我们就讲到如何将数据放入到磁盘文件当中。本文主要介绍c语言中文件操作的相关内容。提示:以下是本篇文章正文内容,下面案例可供参考一、文件是

2022-05-15 21:13:25 483

原创 单链表的基本操作

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-05-03 22:36:21 1067 1

空空如也

空空如也

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

TA关注的人

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