IOS
文章平均质量分 77
凉亭下
这个作者很懒,什么都没留下…
展开
-
从架构设计思想出发看Flutter
您可以根据自己的需求,将 BLoC 模式应用于其他数据模型,例如订单信息或用户配置,以实现应用程序的高可维护性和可重用性。在这个例子中,我们创建了一个 `ProductsList` 组件,该组件接收一个 `ProductsBloc` 对象作为参数,并使用 `StreamBuilder` 在应用程序的展示部分中响应数据流的变化。BLoC 模式是 Flutter 架构中的一种方式,旨在将用户界面与代码逻辑进行分离,以实现应用程序逻辑的重用并提高代码的可维护性。首先,您需要定义应用程序中使用的数据模型。原创 2023-05-31 23:58:59 · 1088 阅读 · 0 评论 -
flutter mqtt的使用看这里,持续更新
话不多说,新建一个工程flutter_app_mqtt,在pubspec.yaml文件中,添加依赖库mqtt_client,然后pub get一下,下载库。原创 2023-05-08 15:39:15 · 1995 阅读 · 0 评论 -
Xcode垃圾清理
每个文件夹里包含的就是一个特定系统版本的设备的数据。这个文件夹中保存的是Xcode的缓存文件,曾经在Xcode跑过的所有项目的索引、build的信息等都会保存在这里。由于这里包含了大量已经没用的项目的信息又懒得去筛选,于是把整个文件夹里面都删了。每次把一个设备接入电脑进行真机调试之前,电脑会对设备建立索引,也在此文件夹下生成对该设备系统的支持文件。每次打包App的dSYM等数据就保存在这里,把一些没用的版本删了。这里保存了playground的项目缓存,全删了。同上,把没用的删了。原创 2023-04-22 23:59:40 · 1593 阅读 · 0 评论 -
不用但一定要懂 ---- iOS 之 响应链、传递链 与 手势识别
通过「命中测试」来找到「第一响应者」由「第一响应者」来确定「响应链」将事件沿「响应链」传递事件被某个响应者接收,或没有响应者接收从而被丢弃注:这些步骤都是建立在不使用 UIGestureRecognizer 的基础上的总的来说,手势识别器在大多数情况下,识别屏幕触摸事件的优先级,比控件本身的方法的优先级高。所以在开发的过程中,注意不要让手势覆盖控件本身的方法实现。同时也要理解默认情况下,手势识别在一开始实际上并不会阻止控件自身的touches系列方法,而是在之后的某个时机去取消。另外在。原创 2023-04-09 23:24:12 · 1943 阅读 · 0 评论 -
使用cocopod就那么容易
打开终端替换ruby镜像源,系统自带的镜像源(gem sources --remove https://rubygems.org/)被墙挡住了或者(https://ruby.taobao.org/)已过期。需替换成新的镜像源。1).先查看已有的镜像是否是:https://gems.ruby-china.org 如不是移除现在的镜像,添加新的镜像,操作如下。成功显示: *** CURRENT SOURCES *** https://gems.ruby-china.org。原创 2023-04-09 23:16:06 · 1117 阅读 · 0 评论 -
WebSocket与HTTP联系及Socket的区别
在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。WebSocket API 是 HTML5 标准的一部分, 但这并不代表 WebSocket 一定要用在 HTML 中,或者只能在基于浏览器的应用程序中使用。Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。1. 都是一样基于TCP的,都是可靠性传输协议。原创 2023-04-06 20:43:59 · 886 阅读 · 0 评论 -
xcode 10 新特性
可以通过⌃+⇧+Click来选择多行.还可以(⌥+Click+鼠标拖动)来选择多行.还可以直接用键盘⌃+⇧+Up向上选择多行⌃+⇧+Down向下选择多行。当我们在代码里,点击IBOutlet元素,会弹出它所对应的在xib中的控件.当你在出现的弹框中点击,它就会跳转到xib文件中,并定位到它.使用触控板上的捏合手势进行缩放或按住Option并滚动。2. xcode10 提供了新的调试时候对(NS)data的导出预览功能。4 xcode10 的源码编辑器提供了 多行操作。迁移到了 最顶部的状态栏上。原创 2023-04-06 20:42:22 · 690 阅读 · 0 评论 -
九大经典算法
while (i < j && [temArr[j] intValue] >= [key intValue]) { // 右边j位大于基数位置不变。if (i == j) { // i、j位置重合结束本次循环,当key是目前最小的数时,会出现i=j的情况,arr[i] = key // i和j重合时本轮循环结束,将key放入i的位置(则左侧数都比key小,右侧数都比key大)if (i == j) { // 当key是目前最大的数时(m[j]的前面),会出现i=j的情况。未排序元素继续重复排序操作。原创 2023-04-05 10:25:36 · 4488 阅读 · 2 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item12
当对象接收到无法解读的消息后,就会启动“消息转发”机制,开发者可经由此过程告诉对象应该如何处理未知消息。消息转发分为两大阶段动态方法解析完整的消息转发机制备援的接收者NSInvocation对象。原创 2023-04-03 23:40:32 · 517 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item11
在Objective-C中,如果向某对象传递消息,那就会使用动态绑定机制来决定需要调用的方法。在底层,所有方法都是普通的C语言函数,然而对象收到消息之后,究竟该调用哪个方法则完全于运行期决定,甚至可以在程序运行时改变,这些特性使得Objective-C成为一门真正的动态语言。原创 2023-04-03 23:34:59 · 1194 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item10
可以给某对象关联许多其他对象,这些对象通过“键”来区分,这就是关联对象。存储对象值的时候,可以指明“存储策略”(storage policy),用以维护相应的“内存管理语义”*** 存储策略 ***存储策略由名为objc_AssociationPolicy的枚举所定义的。下表为:该枚举的取值和与之对应的@property属性。表 对象关联类型由于设置关联对象时所用的键是个“不透明的指针。原创 2023-04-03 23:35:46 · 660 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item9
类族”(class cluster)是一种模式(pattern)。该模式可以灵活应对多个类,将它们的实现细节隐藏在“抽象基类”(abstract base class)后面,以保持接口简洁。开发者无须自己创建子类实例,只需调用基类方法来创建即可。原创 2023-04-03 23:35:03 · 698 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item8
==”操作比较的是两个指针本身,而不是其所指的对象。应该使用NSObject协议中声明的“isEqual:”方法来判断两个对象的等同性。其中,某些对象提供了特殊的“等同性判定方法”,如判断NSString类对象的“isEqualToString:”方法。原创 2023-04-03 23:30:16 · 800 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item6
属性”(property)是Objective-C的一项特性,用于封装对象中的数据。Objective-C对象通常会把所需要的数据保存为各种实例变量,实例变量一般通过“存取方法”(access method)来访问。Objective-C 2.0后,经“属性”这一特性的引入,开发者可以令编译器自动编写与属性相关的存取方法。原创 2023-04-03 19:03:44 · 503 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item5
枚举只是一种常量命名方式。某个对象所经历的各种状态就可以定义为一个简单的枚举集(编译器会为枚举集里的枚举各自分配一个独有的编号,从0开始,每个枚举递增1)。原创 2023-04-02 16:58:11 · 852 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item4
解释:常量没有类型信息,并且其含义不明确。此外,在预处理过程中会把碰到的所有ANIMATION_DURATION一律替换成0.3。原创 2023-04-02 16:52:41 · 682 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item3
** 字面量语法的好处!***原创 2023-04-02 16:53:17 · 416 阅读 · 0 评论 -
《Effective Objective-C 2.0 》 阅读笔记 item2
** 使用@class的必要性?***原创 2023-04-02 16:49:41 · 223 阅读 · 0 评论 -
《Objective-C高级编程》自动引用计数 阅读笔记 item1(内存管理/引用计数)
放假前从图书馆借了几本技术书,是其中的一本,在豆瓣里评价挺高的,有8.2。虽然现在iOS的绝大多数项目基本上都是ARC的了,但是深入了解下苹果的引用计数式内存管理的思考方式总是好的。认真地看完了第一章自动引用计数,像这种深入底层、源代码讲解知识点的方式很棒,但是这排版真的很糟糕,经常得对一个知识点看个好几遍才弄懂在讲什么。本着把书读薄的精神,试着做了下阅读笔记,大多数都是摘抄自书籍。原创 2023-04-01 18:42:32 · 1027 阅读 · 0 评论 -
学习HM微博项目第10天
步骤:发微博12-表情键盘06-点击表情 -> 发微博13-表情键盘07-插入表情和封装textView -> 发微博14-表情键盘08-长按表情 -> 发微博15-表情键盘09-最近表情 -> 发微博16-表情键盘10-最近表情完善。原创 2023-04-01 18:37:09 · 571 阅读 · 0 评论 -
学习HM微博项目第9天
步骤:发微博07-表情键盘01-切换键盘 -> 发微博08-表情键盘02-表情工具条 -> 发微博09-表情键盘03-加载表情数据和切换表情按钮 -> 发微博10-表情键盘04-表情分页 -> 发微博11-表情键盘05-显示表情。原创 2023-04-01 18:24:11 · 777 阅读 · 0 评论 -
学习HM微博项目第8天
APP的演示操作:前文中,已经初步添加了输入控件UITextView,但是输入控件UITextView并不能完全满足我们的要求,即无法实现占位文字。所以,新建了一个继承自UITextView的HMTextView类,将占位文字的实现以及输入控件的具体逻辑都封装到HMTextView类中,只将占位文字和占位文字颜色两个属性提供给外界(HMComposeViewController类)使用。原创 2023-03-31 00:55:27 · 249 阅读 · 0 评论 -
学习HM微博项目第7天
步骤:首页14-时间 -> 首页15-来源 -> 首页16-配图相册 -> 首页17-头像。原创 2023-03-31 00:42:56 · 138 阅读 · 0 评论 -
学习HM微博项目第6天
前文中的tableViewCell是系统自带的,为了让cell能够显示更多的内容并且按照我们的要求来显示,我们需要自定义cell。自定义cell的步骤较为复杂,需要分几步走。自定义cell的步骤可见”iOS总结“。自定义cell的步骤:1.创建一个继承自UITableViewCell的HMStatusCell2.在HMStatusCell.m的initWithStyle:方法中进行子控件的初始化:1> 将有可能显示的所有子控件都添加到contentView中。原创 2023-03-31 00:14:23 · 184 阅读 · 0 评论 -
学习HM微博项目第5天
步骤:首页01-获得用户昵称和封装标题按钮 -> 首页02-加载微博数据 -> 首页03-字典转模型 -> 首页04-字典转模型2 -> 首页05-下拉刷新 -> 首页06-显示新微博数量 -> 首页07-上拉加载更多数据。原创 2023-03-30 21:00:00 · 156 阅读 · 0 评论 -
学习HM微博项目第4天
步骤:OAuth授权01_加载登录界面 -> OAuth授权02_获得accessToken -> OAuth授权03_存储账号信息 -> OAuth授权04_封装账号存储 -> OAuth授权05_封装控制器的切换。原创 2023-03-30 16:32:07 · 566 阅读 · 0 评论 -
学习HM微博项目第3天
在前面的学习中,系统自带的tabBar是这样的:由于某个需求,需要在tabBar的中间加上一个发送微博的按钮,并且保证与tabBar上原先的4个UITabBarButton的间隔“和谐”。经过尝试,发现只有自定义tabBar才能改变UITabBarButton与自定义UIButton的frame。在HMTabBarViewController类的viewDidLoad方法中,初始化子控制器后,更换系统自带的tabBar,在自定义的tabBar中修改UITabBarButton的frame。原创 2023-03-28 12:40:24 · 230 阅读 · 0 评论 -
学习HM微博项目第2天
搜索框在很多项目中都可能使用到,所以要对其进行封装。通过创建一个继承UITextField类的HMSearchBar对搜索框进行封装,不同于之前的Category。原创 2023-03-27 15:42:40 · 254 阅读 · 0 评论 -
学习HM微博项目第1天
步骤:搭建基本环境 -> 展示子控制器 -> 项目分层 -> 增加导航功能 -> 增加导航栏按钮。原创 2023-03-27 12:01:23 · 1179 阅读 · 0 评论