不会敲代码的VanGogh
码龄3年
求更新 关注
提问 私信
  • 博客:102,944
    视频:3
    102,947
    总访问量
  • 86
    原创
  • 702
    粉丝
  • 69
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
加入CSDN时间: 2022-09-27

个人简介:3GiOS组原神高手

博客简介:

m0_73974920的博客

查看详细资料
个人成就
  • 获得851次点赞
  • 内容获得19次评论
  • 获得789次收藏
  • 代码片获得1,313次分享
  • 博客总排名819,312名
创作历程
  • 42篇
    2024年
  • 44篇
    2023年
成就勋章

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 4

TA参与的活动 4

兴趣领域 设置
  • 编程语言
    swiftobjective-c
创作活动更多

AI 镜像开发实战征文活动

随着人工智能技术的飞速发展,AI 镜像开发逐渐成为技术领域的热点之一。Stable Diffusion 3.5 FP8 作为强大的文生图模型,为开发者提供了更高效的图像生成解决方案。为了推动 AI 镜像开发技术的交流与创新,我们特此发起本次征文活动,诚邀广大开发者分享在 Stable Diffusion 3.5 FP8 文生图方向的实战经验和创新应用 本次征文活动鼓励开发者围绕 Stable Diffusion 3.5 FP8 文生图方向,分享以下方面的内容: 1. 技术实践与优化 - Stable Diffusion 3.5 FP8 模型架构解析与优化技巧 - 文生图生成效果的提升方法与技巧 - 模型部署与加速策略,例如使用 Hugging Face、Diffusers 等工具 - 针对特定场景(例如二次元、写实风)的模型微调与定制化开发 2. 应用场景探索 - Stable Diffusion 3.5 FP8 在不同领域的应用案例分享,例如游戏设计、广告创意、艺术创作等 - 利用 Stable Diffusion 3.5 FP8 实现图像编辑、图像修复、图像增强等功能的探索 - 结合其他 AI 技术(例如 NLP、语音识别)构建更强大的应用 3. 创新应用与思考 - 基于 Stable Diffusion 3.5 FP8 的创新应用场景设计 - AI 镜像开发的未来发展方向的思考与展望 - 对 AI 镜像开发伦理、安全等问题的探讨

28人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

【iOS】——YYModel源码总结

YYModel主要用于将JSON数据转换为模型对象,以及将模型对象转换为字典的库。JSONModelModelJSONYYModel的容错性更好,它会自动进行错误类型检查,如果检查到不匹配的类型会自动赋值为nil。YYModel无侵入性,它采用类别的方式来实现功能,不同于JSONModel需要模型类继承于JSONModel类。
原创
博文更新于 2024.09.20 ·
1830 阅读 ·
26 点赞 ·
0 评论 ·
10 收藏

【iOS】——JSONModel源码

JSONModel框架的作者允许开发者自定义错误阻止模型的转换使用validate方法if (!return NO;*error = [NSError errorWithDomain:@"未成年!return NO;return YES;
原创
博文更新于 2024.09.19 ·
1525 阅读 ·
28 点赞 ·
0 评论 ·
8 收藏

【iOS】——应用启动流程

广义上的启动是点击图标到首页数据加载完毕狭义上的启动是点击图标到启动图完全消失的第一帧启动的最佳时间是400ms以内,因为从点击图标到显示Launch Screen,到Launch Screen消失这段时间是400ms。启动时间不可以大于20s,否则会被系统杀掉起点:进程创建的时间终点:第一个是 Core Animation 提供的一种事务机制,把一组 UI 上的修改打包,一起发给 Render Server 渲染。
原创
博文更新于 2024.09.13 ·
2225 阅读 ·
30 点赞 ·
0 评论 ·
20 收藏

【iOS】——渲染原理与离屏渲染

图像渲染流程大致分为四个部分:除了Application阶段由 CPU 负责,后续都是由GPU负责这个阶段具体指的就是图像在应用中被处理的阶段,此时还处于 CPU 负责的时期。在这个阶段应用可能会对图像进行一系列的操作或者改变,最终将新的图像信息传给下一阶段。这部分信息被叫做图元(primitives)进入这个阶段之后,以及之后的阶段,就都主要由 GPU 负责了。此时 GPU 可以拿到上一个阶段传递下来的图元信息,GPU 会对这部分图元通过顶点着色器、形状装配、几何着色器进行处理,之后输出新的图元。这一系列
原创
博文更新于 2024.09.08 ·
2099 阅读 ·
15 点赞 ·
0 评论 ·
19 收藏

【iOS】——分类拓展关联对象

分类可以用来为类动态的添加方法,通过关联对象还能动态添加属性分类默认只能声明属性不会生成成员变量和对应的get和set方法分类也用于模块化设计分类是在运行期生成,扩展是类的一部分在编译期生成关联对象的API的实现都是通过操作AssociationsManager、AssociationsHashMap、ObjectAssociationMap、ObjcAssociation来实现Category的方法会“覆盖”掉原来类的同名方法?Category。
原创
博文更新于 2024.08.28 ·
1466 阅读 ·
23 点赞 ·
1 评论 ·
14 收藏

【iOS】——响应者链和事件传递链

如果当前这个view是控制器的view,那么控制器就是上一个响应者;如果当前这个view不是控制器的view,那么父控件就是上一个响应者。传递链:有系统向最上层view传递,->window->root view-> … ->first view响应连:由最基础的view向系统传递,first view->super view-> … ->->window->->如果我们不想让某个视图响应事件,只需要重载 PointInside:withEvent:方法,让此方法返回NO就行了.
原创
博文更新于 2024.08.17 ·
1873 阅读 ·
8 点赞 ·
0 评论 ·
22 收藏

【iOS】——AutoReleasePool底层原理及总结

自动释放池是由以双向链表的方式实现的,每一个所占内存大小为4096字节,其中56字节用于存储结构体中的成员变量。autoreleasepool在初始化时,内部是调用方法autoreleasepool在调用析构函数释放时,内部是调用方法入栈(push)在页中压栈普通对象主要是通过next指针递增进行的当没有pool,即只有空占位符(存储在tls中)时,则创建页,压栈哨兵对象。
原创
博文更新于 2024.08.06 ·
2213 阅读 ·
29 点赞 ·
2 评论 ·
20 收藏

【iOS】——GCD总结

此时就形成了主队列中的任务需要等待将任务添加到队列的这个操作的任务执行完才能进行,而将任务添加到队列这个操作需要等待主线程上的任务执行完才能进行,形成了主队列和主线程相互等待的局面,造成了死锁。如果是同步执行之后再进行异步操作,虽然开启了新线程,但是同步执行的任务在开启新线程之前就已经全部执行完了,这个新线程只负责处理异步操作中的任务,也就是同步执行的还是顺序,异步执行的是乱序。GCD中的队列有串行队列和并发队列,都是采用FIFO原则,也就是创建的新任务总是在队尾,执行的当前任务总是从队头开始。
原创
博文更新于 2024.08.03 ·
1087 阅读 ·
19 点赞 ·
0 评论 ·
16 收藏

【iOS】——NSOperation和NSOperationQueue学习总结

首先需要创建一个继承于NSOperation的子类,接着在该类的实现部分重写main方法,我们不需要管理操作的状态属性和isFinished。当main执行完返回的时候,这个操作就结束了。if (!i < 2;i++) {@end//1.创建CustomOperation对象// 2.调用 start 方法开始执行操作[op start];可添加完成的代码块,在操作完成后执行。添加操作之间的依赖关系,方便的控制执行顺序。设定操作执行的优先级。可以很方便的取消或暂停一个操作的执行。
原创
博文更新于 2024.08.02 ·
1792 阅读 ·
33 点赞 ·
0 评论 ·
12 收藏

【iOS】——NSThread

NSThread提供了一个面向对象的接口来创建和管理线程,相比底层的pthreadNSThread提供了更高级别的抽象,使得线程的创建和管理更加简单和安全。一个NSThread对象代表一个线程,使用比较简单,但是需要手动管理线程的生命周期、处理线程同步等问题。
原创
博文更新于 2024.08.01 ·
1067 阅读 ·
20 点赞 ·
0 评论 ·
18 收藏

【iOS】——锁

假设线程A想要通过pthread_mutex_lock操作去得到一个临界区的锁,而此时这个锁正被线程B所持有,那么线程A就会被阻塞 (blocking),Core0 会在此时进行上下文切换(Context Switch)将线程A置于等待队列中,此时Core0就可以运行其他的任务(例如另一个线程C)而不必进行忙等待。当一个线程试图获取一个已经被占用的锁时,它不会排队等待,而是立即返回,这意味着它可能在其他等待的线程之前再次尝试获取锁。如果锁已经被占用,其它试图获取锁的线程会等待,直到锁重新可用。
原创
博文更新于 2024.08.01 ·
754 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

【iOS】——持久化

因为plist文件不能够保存自定义对象。如果一个字典中保存有自定义对象,如果把这个对象写入到文件当中,它是不会生成 plist文件的。如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,可以直接用NSKeyedArchiver进行归档和恢复。
原创
博文更新于 2024.07.30 ·
1665 阅读 ·
25 点赞 ·
0 评论 ·
22 收藏

【iOS】——KVC和KVO

key的值必须正确,如果拼写错误,会出现异常。当key的值是没有定义的,valueForUndefinedKey:这个方法会被调用,如果你自己写了这个方法,key的值出错就会调用到这里来。因为类可以反复嵌套,所以有个keyPath的概念,keyPath就是用.号来把一个一个key链接起来,这样就可以根据这个路径访问下去。NSArray/NSSet等都支持KVC。可以通过KVC访问自定义类型的私有成员。
原创
博文更新于 2024.07.30 ·
2520 阅读 ·
21 点赞 ·
0 评论 ·
30 收藏

【iOS】——通知机制及底层原理

注册通知在同步通知中存储是以name和object为维度的,即判定是不是同一个通知要从name和object区分,如果他们都相同则认为是同一个通知,后面包括查找逻辑、删除逻辑都是以这两个为维度的。通过name和object将通知存储划分为三种结构:named表(name存在)、nameless表(name不存在)、wildcard链表(name和object都不存在)在通知的存储过程并没有做去重操作,这也解释了为什么同一个通知注册多次则响应多次。
原创
博文更新于 2024.07.26 ·
1840 阅读 ·
31 点赞 ·
0 评论 ·
9 收藏

【iOS】——Block循环引用

此时self持有block,block弱引用self,弱引用会自动变为nil,强持有中断,所以不会引起循环引用。weakSelf被强引用了就不会自动释放,因为strongWeak只是一个临时变量,它的声明周期只在block内部,block执行完毕后,strongWeak就会释放,而弱引用weakSelf也会自动释放。在上面代码中,person对象强持有block对象,在block语法中,block对象又强持有person对象,此时达成互相强持有,谁也无法释法谁,造成循环引用。对person产生强引用。
原创
博文更新于 2024.07.25 ·
1561 阅读 ·
39 点赞 ·
0 评论 ·
28 收藏

【iOS】——Block底层实现和捕获机制

Block的本质是一个对象,其内部的第一个成员是isa指针,通过内部的FuncPtr指针指向实际执行的函数,也就是Block中花括号里面的代码内容。Block只会捕获自己需要使用的自动变量并将其保存进了Block的结构体实例中,也就是Block自身中。Block捕获普通的局部变量只是通过构造函数将它的值传递进了Block的结构体实例中的成员,因此不能在Block内部修改值,并且在Block外修改的值也不会影响Block捕获时的值。
原创
博文更新于 2024.07.25 ·
1393 阅读 ·
31 点赞 ·
0 评论 ·
29 收藏

【iOS】——Block概要和使用规范

调用Block的时候会去访问Block结构体中的FuncPtr指针,因为Block为空,所以此时的FuncPtr指针所指的位置是无效的,当访问这个无效的地址的时候就会报错
原创
博文更新于 2024.07.25 ·
846 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

【iOS】——属性关键字的底层原理

可以看到atomic为yes的时候,对应属性的set、get方法用到了spinlock_t锁,保证了set、get方法的线程安全,但是并不能保证其他操作的线程安全,比如对属性进行进行release操作。, 此函数会根据提供的参数执行属性值的设置,包括处理原子性操作和拷贝行为。如果shouldCopy=MUTABLE_COPY 那么 copy = NO,mutableCopy = YES。如果shouldCopy=0 那么 copy = NO,mutableCopy = NO。是实例变量的偏移量;
原创
博文更新于 2024.07.23 ·
1345 阅读 ·
13 点赞 ·
0 评论 ·
11 收藏

【iOS】——属性关键字

NSMutableArray用copy修饰会出现什么问题?出现调用可变方法不可控问题,会导致程序崩溃。对于可变对象使用copy关键字会进行深拷贝,返回一个不可变的对象,对不可变的对象调用可变方法就会crash2.copy关键字影响了对象的可变和不可变属性吗?可变对象(mutable)copy和mutableCopy都是深拷贝不可变对象(immutable)的copy是浅拷贝,mutableCopy是深拷贝。
原创
博文更新于 2024.07.23 ·
742 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

【iOS】——SideTable

SideTablesde的实质类型是存储SideTable的StripedMap。在StripedMap类中有定义存储sidetable的最大数量,所以每个SideTablesdes可以对应多个对象,而每个对象对应一个sidetable。iphone 中 SideTables() 本质是返回一个 SideTableBuf 对象,该对象存储 8 个 SideTable;因为涉及到多线程和效率的问题,必定不可能只使用一个 SideTable 来存储对象相关的引用计数器和弱引用;
原创
博文更新于 2024.07.22 ·
1708 阅读 ·
10 点赞 ·
1 评论 ·
20 收藏
加载更多