- 博客(268)
- 收藏
- 关注
原创 优秀的iOS博客
收集一批优秀的iOS博客,不断更新招聘一个靠谱的 iOS百度大佬出的一些面试题唐巧的博客 做iOS的没几个不知道他的杨萧玉 哈工大毕业,腾讯大佬招聘一个靠谱的 iOS百度大佬出的一些面试题《招聘一个靠谱的iOS》面试题参考答案 有问就有答...
2020-05-25 15:18:07
681
原创 坚持写博客
之前自己学习工作中很少去写博客,一是懒(嗯,最主要的),二是觉得自己遇到不会的问题可以上网搜一下,虽然有的答案明显就不对,但是,你找半天,总会找到解决方法。再有就是学习新的东西,也是自己网上找找博客就可以了,人家都写过了,干嘛还要自己写呢?大家写来写去都是那些东西,又有什么意思呢?后来,在聊天群里看到了这张图瞬间觉得,博客,还得写!写博客不仅是让别人看,让别人少走弯路,更重要的是,自己的总结...
2019-03-22 09:42:39
337
原创 JavaWeb开发---学习---(二)
简单来说,Bean 就是 Spring 帮你创建、管理、注入依赖的对象,核心价值是解耦和自动化。类比 iOS:它就像一个“被依赖注入框架托管的NSObject实例”,你不用手动alloc init,不用手动传递依赖,框架会帮你完成这一切。理解了 Bean,就理解了 Spring 框架“控制反转(IOC)”的核心思想——把对象的控制权从业务代码转移到框架容器中,让开发更关注业务逻辑,而非对象的创建和管理。Bean的作用域第三方Bean。
2025-11-10 10:23:30
542
原创 JavaWeb开发---学习---(一)
类级别注解: 通常在定义类时使用,如@Service@Mapper方法级别注解: 用于处理特定请求或执行特定功能,如字段级别注解: 用于依赖注入或数据映射,如@AutowiredSQL注解: 直接在Mapper接口方法上编写SQL语句,如@Select这些注解大大简化了Java代码的编写,通过声明式的方式实现各种功能,减少了样板代码的编写。
2025-09-26 21:34:03
376
原创 Dify学习(三)
首先,需要做一个Agent工具,请求redbook连接后,可以拿到body,然后通过代码转换成想要的内容其次,我们需要一个图生图工具使用百度的千帆AI,跟视频课用的方法不一样,但是结果一样。自己使用的是直接HTTP请求变成了然后,就可以集合起来,搞一个red Book仿写了:应该是对的,但是报错,报错:说我调用的太频繁了。。。明天再试试。
2025-09-03 11:38:36
308
原创 Dify学习(二)
MCP 是一套规则,它让 AI 模型可以安全、方便地使用外部工具和数据,从而极大地扩展了 AI 的能力边界。作为使用者:你将来可以通过一个简单的界面,一键添加由 MCP 提供的各种强大工具(如操作 Excel、发送邮件、查询股票等)到你的 AI 助手中。作为开发者:如果你有独特的需求,可以为自己或公司编写自定义的 MCP Server,然后在 Dify 中无缝集成,打造出真正强大和专属的 AI 应用。以上来自deepseekMCP serverMCP server里面设置schema。
2025-09-02 08:28:47
962
原创 Flutter学习笔记(六)---状态管理、事件、路由、动画
InheritedWidget可以实现跨组件数据的传递定义一个共享数据的InheritedWidget,需要继承自InheritedWidget
2025-08-11 22:09:33
571
原创 Flutter学习笔记(五)---多线程、网络请求、豆瓣
Widget 树:描述“长什么样”(设计图)。Element 树:管理“怎么更新”(中间协调者)。RenderObject 树:负责“画出来”(实际施工)。这种分层设计让 Flutter 既能灵活描述 UI,又能高效更新界面,是 Flutter 高性能的重要原因之一。作为小白,先记住“Widget 负责描述,RenderObject 负责渲染,Element 负责中间协调”即可,后续用多了会慢慢加深理解~
2025-08-08 08:51:48
886
原创 Flutter学习笔记(四)---基础Widget
最顶层分命令式(教计算机一步步做)和声明式(告诉计算机想要什么结果)。面向对象、面向过程、面向协议,都是命令式的细分(只是组织代码的方式不同);函数式编程可跨命令式/声明式,但更偏向声明式的简洁。实际开发中,很多语言/项目是多范式混合(如 Python 同时支持 OOP、函数式、命令式 ),不用死抠“必须属于某一种”,理解核心思想即可~
2025-07-23 17:46:08
1082
原创 鸿蒙开发---笔记
可以将某个组合组件提出来,封装成一个自定义组件,然后可以在本界面多出调用也可以提出来,放在其他地方,这样其他地方也可以多出引用该自定义组件首先,是一个函数,另外这个函数主要是做页面封装的函数根据自定义构建函数位置不同,有不同的叫法:首先,在当前组件的外面去写(也就是@Component全局自定义构造函数,整个文件都可以使用或者写到组件里面,被称为局部自定义构造函数可以将某些公共样式,抽出成函数,多出调用样式以@Styles开头的函数调用:.fileScreen()@Styles。
2025-07-23 09:56:58
662
原创 Flutter学习笔记(三)---flutter案例分析
下添加Dart和Flutter后,就可以打开我们新创建的learn_flutter项目了。有状态:StatefulWidget 在运行过程中有一些状态(data)需要改变。无状态:StatelessWidget 内容是确定的,没有状态(data)的改变。这比Xcode每次改UI都要重新运行然后找到对应的View方便太多啦!Widget分为:有状态和无状态两种Widget。Widget就相当于iOS中的View。两个字母之间的链接,可以使用。可切换状态的Checkbox。热重启:重新运行整个App。
2025-03-03 08:26:06
417
原创 Python学习笔记(二)
对象创建完毕后,会自动调用:构造方法以双下划线开头、结尾的属性、方法,通常都是对象内置的(与生俱来的)如果属性名/方法名,是以双下划线开头、且不以双下划线结尾,那么这个属性/方法就会对外不可见原名称被改成了:比如被改成了:通过还是可以访问和修改不可见的属性/方法Python不支持重载(方法名相同,参数不同)捕获异常配合使用
2024-12-07 10:58:46
266
原创 Swift知识点---RxSwift学习
RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护RxSwift的目的是:让数据/事件流 和 异步任务能够更方便的序列化处理,能够使用Swift进行响应式编程RxSwift本质上还是观察者模式,并且是一个响应式的,并且可以序列化的。
2024-09-06 09:54:46
2462
原创 SwiftUI知识点(五)--- SwiftUI Continued Learning
方法一中的只改变内部内容的位置,而不会改变整个视图框架的尺寸,因此在maxWidth修改后它产生的效果并不明显,无法正确地左对齐文本。方法二将宽度和对齐方式合并在一个修饰符内,使得框架的尺寸变化和内容对齐同时生效,因此可以正确地使文本左对齐。
2024-08-28 11:32:25
837
原创 SwiftUI中,@State、@Binding、@Environment、@ObservedObject、@StateObject、@EnvironmentObject的用法与区别
State: 用于局部状态管理,适用于单一视图。@Binding: 用于在视图之间双向绑定状态,适用于父子视图之间的状态共享。: 用于访问环境中的共享值,适用于依赖上下文或全局设置的视图。: 用于监视外部提供的状态对象,适用于多个视图共享的状态。: 用于在视图中创建并持有状态对象,适用于初始化和管理的情况。: 用于全局共享的状态对象,适用于应用中广泛使用的状态管理。: 用于视图观察外部的,当对象的属性变化时会重新渲染视图。它不像通知那样松耦合,更加结构化。: 用于在视图内部声明和持有一个。
2024-08-20 09:53:25
2081
原创 SwiftUI中,各种表格的作用、区别与选择
List: 用于展示单列或多列的垂直列表。Form: 用于输入表单布局。Table: 用于显示多列数据表格(iOS 16+)。LazyVGridLazyHGrid: 用于灵活的网格布局。ScrollView: 用于自定义表格布局,适合复杂布局。根据具体的需求和项目要求,你可以选择最合适的控件来展示你的数据。每个控件都有其优势,在合适的场景中能够发挥最大的作用。
2024-08-15 09:23:58
859
原创 SwiftUI知识点(三)
可以在Assets文件夹下,建立自定义颜色(两种模式下都有颜色),从而达到一种颜色值,两种不同的显示。黑白是不适应的,即黑色在暗黑模式下黑色背景下不显示、白色在正常模式白色背景下不显示。可以将滑块线做成随着滑动距离而现实不同的颜色,超级炫酷~明明显示两个,count应该是2或者3,怎么是4呢?其他颜色,比如红、黄、绿,在这两种模式下都可以显示。监听对象的改变,并且在view刷新的时候,不会改变。监听对象的改变,并且在view刷新的时候也会改变。没事,运行起来显示的就是2。也可以在本地做判断,利用。
2024-07-23 16:45:44
433
原创 SwiftUI知识点(二)
应该输出两个Text,即Text(123),Text(456),加上之前的Text(123),此时有:Text(123),Text(123),Text(456)这是因为:swiftUI的视图是声明式的,在状态改变的时候,重新渲染视图,渲染的内容只有新的部分,即Text(456)再输入456,点击save,此时,for循环变量,拿出数组的值,而数组有两个元素[“123”, “456”]比如我先输入123,点击save,则有一个Text(123)而实际上,只有Text(123),Text(456)
2024-07-08 15:43:18
618
原创 SwiftUI知识点(一)
VStack {Text("今天吃什么?").font(.largeTitle)//字体大小.fontWeight(.semibold)//字体样式.bold()//粗体.underline(true, color: Color.red)//下划线.italic()//斜线.strikethrough(true, color: Color.green)//穿过线.foregroundStyle(.purple)//颜色。
2024-06-02 22:44:41
1432
1
原创 Swift知识点(五)
以上几种方法,都是自定义函数方法,哪用去哪写这种方法,属性名没有特殊标识,有可能String里面有一个numberCount,会造成覆盖因此,最好命名为,这种好改如果可以这样调用更好,看着像是私有库里面的方法这种做法好是好,但还有缺点,只有String的扩展,如果以后是数组或者其他类型求里面的数字个数,还要写其他的。上述,使用泛型,做到不需要一个类型写一种样式但,多个类型有公共特点,可以抽出来,但不适用抽父类,因为,有结构体、有类,Dog跟Person也没有关系。
2024-05-23 13:35:49
808
原创 Swift知识点(四)
通过汇编打断点,可以看出在Swift中调用OC的方法,还是使用的runtime那一套在OC中调用Swift的方法函数,由于已经是继承NSObject,因此,还是走的runtime那一套。
2024-05-17 18:15:12
1298
原创 Swift知识点(三)
可以自定义新的运算符:在全局作用域使用operator进行声明比如:prefix operator 前缀运算符就是定义了一个自定义运算符+++,实现前缀运算。
2024-05-16 08:35:08
951
原创 iOS原生与H5交互方法
在使用UIWebViewUIWebView已经被苹果弃用,推荐使用WKWebView),可以使用方法来执行JavaScript代码。
2024-04-19 11:12:04
2364
原创 关联对象介绍
定义一个中间对象由于不直接支持weak关联,你可以通过创建一个中间对象来持有实际的弱引用。这个中间对象将有一个weak属性,用于指向你想要弱引用的对象。@end@end在分类中使用关联对象在分类中,使用和来分别设置和获取这个中间对象,从而间接实现了一个弱引用的属性。
2024-04-03 12:32:26
1206
原创 Delegate介绍
首先定义一个协议,声明需要多个对象响应的方法。@optional@end首先,定义一个事件协议,该协议包含委托者将调用的方法。@end@end@end@end@optional@end这个协议声明了一个方法,任何想要监听事件的代理都应该实现这个方法。
2024-04-02 19:04:39
1580
原创 SDWebImage源码解析---疑难问题解答
SDWebImage的简单流程图:网上有大佬做了这个图,供参考:源码看了一遍,写的很好,具体源码分析就不写了,后面会列出一些写的源码不错的文章。
2024-04-01 20:40:14
985
原创 Mach-O、Universal Binary、虚拟内存等简介
Mach-O:Mach Object,是Mac\iOS上用于存储程序、库的属于Mach-O格式的文件类型有:11种0x10x20x30x40x50x60x70x80x90xa0xb。
2024-03-31 11:19:15
1103
原创 NSString有哪些创建对象的方法?创建的对象分别存储在什么区域?
这种情况通常发生在几种特殊对象上,这些对象由于各种原因,被系统视为“永久存活”的,直到应用程序结束。在现在的版本中,为了保证数据安全,苹果对 Tagged Pointer 做了数据混淆,开发者通过打印指针无法判断它是不是一个Tagged Pointer,更无法读取Tagged Pointer的存储数据。所以在分析Tagged Pointer之前,我们需要先关闭Tagged Pointer的数据混淆,以方便我们调试程序。并不表示实际的引用计数值,而是一个标志,表明这个对象是由系统以特殊方式管理的。
2024-03-27 20:24:26
627
原创 Swift知识点(二)
通过汇编打断点,可以看出在Swift中调用OC的方法,还是使用的runtime那一套在OC中调用Swift的方法函数,由于已经是继承NSObject,因此,还是走的runtime那一套。
2024-03-22 15:01:31
1623
原创 iOS常见崩溃简介
多指在移动设备(如iOS、Android设备)中或不可移动设备(如:Windows、Linux等设备),在打开或使用应用程序时出现的突然退出中断的情况(类似于Windows的应用程序崩溃)。多表现为:应用程序画面一闪而过,随即退回到桌面。崩溃会影响用户体验,造成用户流失,因此,我们要重视崩溃根据不同场景,崩溃收集方式不同。
2024-03-17 13:18:33
3665
1
原创 iOS图片占内存大小与什么有关?
图片所占内存大小,与图片的宽高有关我们平时看到的png、jpg、webp这些图片格式,其实都是图片压缩格式。通过对应的算法来优化了大小以节省网络传输与本地保存所需的资源。但是当我们加载图片到内存中将要显示出来的时候是不能使用压缩格式,这样就不能显示图片了。计算机依赖每一个像素点中的数据来显示图片。例如iOS中的UIImange的每个像素点是由red+green+blue 三原色在加上alpha透明度组成的。三原色每一个的范围在0 ~ 255所以需要来存储一个值的大小。
2024-03-15 19:21:18
1802
1
原创 查找数组元素相同的最后一组数组的第一个下标
需求:查找y数组,找出与x数组相同项(相同项可能有多组),找最后一组,并返回最后一组的第一个元素的下标。
2024-03-05 12:51:15
346
原创 Flutter学习笔记(二)---Dart语言学习
这节我们学习下Dart语言的主要语句需要说明的是,文章只做主要的摘录具体参考:Dart 编程语言概览可以在线运行Dart语句的编译器DartPad在 Dart 中一切都是对象,数字类型 也不例外主函数main(){ print("你好啊");}定义一个变量可以使用:明确声明和隐私声明main(){ //明确变量类型 String name = "你好"; //隐私声明 var name2 = "nihao222"; print("$name, $name2")
2024-03-02 12:40:04
671
1
原创 iOS卡顿原因与优化
卡顿: 指用户在使用过程中出现了一段时间的阻塞,使得用户在这一段时间内无法进行操作,屏幕上的内容也没有任何的变化。卡顿作为App的重要性能指标,不仅影响着用户体验,更关系到用户留存、DAU等重要产品数据。因此,需要关注APP的卡顿首先,屏幕上看到的所有内容都是计算机绘制出来的图像帧率:Frames Per Second(fps),表示每秒渲染帧数,通常用于衡量画面的流畅度,每秒帧数越多,则表示画面越流畅。通常,60fps比较流畅,也就是60张/秒,每张图片需要的渲染时间大约是:1s/60张 = 1000
2024-03-01 10:26:41
2731
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅