iOS大鑫
码龄4年
关注
提问 私信
  • 博客:55,125
    视频:189
    55,314
    总访问量
  • 87
    原创
  • 2,308,301
    排名
  • 69
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2020-12-07
博客简介:

iOS-大鑫

查看详细资料
个人成就
  • 获得23次点赞
  • 内容获得59次评论
  • 获得82次收藏
创作历程
  • 123篇
    2021年
成就勋章
TA的专栏
  • iOS开发
    121篇
  • iOS面试
    68篇
  • iOS
    61篇
  • iOS开发面试
    15篇
  • flutter
    7篇
  • swift
    39篇
  • RunTime
    3篇
  • iOS开发的底线
    23篇
  • iOS逆向
    4篇
  • 多线程开发
    4篇
  • iOS工程加固
    2篇
  • iOS开发的分类和扩展
    6篇
  • iOS静态库开发
    3篇
  • iOS蓝牙开发
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

八天让iOS开发者上手Flutter!(七)

上一篇文章我们已经完成首页聊天页面的导航条和列表展示,今天的任务是完成搜索cell的展示和点击之后的搜索页面的功能。自定义SearchCell新建search_cell.dart文件实现SearchCell代码SearchCell的话,因为仅仅只是展示,点击之后就进入搜索页了,应该来说是不需要状态的,所以用一个StatelessWidget就够了。然后布局的方式使用一个Container包含一个Row,Row里面包一个图片和文本就可以了。布局的方式其实多种多样,能实现就好了。完整代码如下:一
原创
发布博客 2021.08.24 ·
374 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

八天让iOS开发者上手Flutter!(六)

准备网络数据这一步不是很重要,提供一些假数据而已,不是重点嫌麻烦的可以跳过。先介绍一个网址:点击这个网址用来搭建我们需要的网络数据,注册账号非常简单,这里就不多说了。注册完成之后,新建一个仓库,简简单单取个名字就够了:之后点击进入仓库,可以看到下图:会默认生成以一个示例接口,可以看一看示例接口的生成规则。看不懂也没关系,我们直接直接上手自己新建一个接口,如图所示:点击右上角的编辑按钮进入编辑模式,新建一个响应chatlist,类型为Array。然后生成chatlist的数据,image.
原创
发布博客 2021.08.19 ·
387 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

一篇走心的iOS代码规范!

前言关于代码规范的重要性这里不做过多解释,能看到这篇文章说明你已经开始重视代码规范了(代码规范看起来是在限制你的自由和发挥,其实它是在间接的帮助你变得更优秀。)。适当的代码规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,进而提高工作效率,降低沟通成本。代码的字里行间流淌着的是软件和程序员的血液,质量的提升是尽可能少踩坑、杜绝踩重复的坑,切实提升系统稳定性,码出质量根据约束力度,暂时把规范约定为2个等级,分别是 必须 和 建议。(一)命名规范1.
原创
发布博客 2021.08.13 ·
534 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

由美团文章“一款可以让大型iOS工程编译速度提升50%的工具”引出的.hmap文件(下)hmap落地

前言上篇文章由美团文章“一款可以让大型iOS工程编译速度提升50%的工具”引出的.hmap文件探索介绍了什么是hmap,有什么用!文章结尾我说会进行落地,然后就比较坑了,感觉不落地,这以后都没法交代,没法继续写文章了!后面不再写这样的话了,坑!结果展示1.创建个项目工程,如下图所示,红框为自己写的组件2.Pod目录3.使用写的插件,生成我们需要的hmap4.文件变化发现pod的xcconfig的HEADER_SEARCH_PATHS添加了hmap路径此时我们.
原创
发布博客 2021.08.11 ·
726 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

由美团文章“一款可以让大型iOS工程编译速度提升50%的工具”引出的.hmap文件探索(上)

前言前段时间,本鑫看了一篇美团的文章:《一款可以让大型iOS工程编译速度提升50%的工具》,一看标题就觉得惊讶,为什么呢?因为它能让编译速度提示50%且不是通过组件二进制化实现,我们日常的提升编译速度就是将组件编译成二进制文件导入项目。本着不清楚的就去了解的原则,就来看看怎么实现的。探索编译耗时原因在项目中我们会引入头文件,例如下图:我们在ViewController中引入了Person的头文件在我们引入头文件的时候,引入的是头文件的名称Person,那么Xcode是怎么找到这个Person文.
原创
发布博客 2021.08.07 ·
916 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

八天让iOS开发者上手Flutter!(五)

上篇文章,我们已经完成了通讯录的列表。这篇文章介绍完成通讯录右侧的索引条的功能。显示索引条之前我们已经做过了我的页面的布局,我的页面上有一个列表和一个拍照按钮,和我们今天要实现的索引条布局十分类似。我的页面的布局如下:通讯录界面的布局,和我的页面的布局都是使用一个Stack包含列表和其他子视图来实现。索引条是紧贴屏幕右侧,然后里面的子视图是由上至下的。所以自然的会想到使用一个Positioned包含Column来实现。Positioned和Stack的组合我们之前讲过,这两个组合起来使用,就和我们
原创
发布博客 2021.08.03 ·
245 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

八天让iOS开发者上手Flutter!(四)

上一篇文章我们已经完成了发现页面的搭建,下一步我们实现微信的我的页面我的页面在着手开发我的页面之前,先新建一个discover目录,将发现页面相关的文件统一挪动到这个目录下。这里会发现AndroidStudio一个比较特别的地方,新建一个目录后,挪动了的文件不需要重新导入头文件。AndroidStudio会在需要的地方自动补全路径。这点感觉还是蛮智能的。设置APP启动默认展示我的页面这个设置在上一篇文章开发发现页面的时候也说过了,就是修改rootPage.dart文件里_currentIndex
原创
发布博客 2021.07.31 ·
316 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

八天让iOS开发者上手Flutter!(三)

搭建项目主框架新建微信聊天,通讯录,发现,我的四个文件上一篇文章最后我们已经将APP的TabBar和四个对应的子视图搭建好了,但是每一个子视图里面肯定会有大量的代码,全部放到rootPage文件里面肯定是不合理的。所以我们为每个子视图创建单独的文件,并将代码分散到每个文件中。比如聊天页面,返回自己的Scaffold:现在我们点击切换一下tabBar的item,发现会有一些高亮的颜色,以及一个水波纹效果,这些都是MaterialApp类的theme提供的。如果想去掉这些效果,要来到main.da
原创
发布博客 2021.07.29 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

八天让iOS开发者上手Flutter!(二)

Flutter布局AlignmentContainer类里有一个alignment属性,翻译过来应该叫对齐方式,这个属性用来控制Container的子控件相对于它自身的一个位置。在我们iOS开发中,我们知道坐标系的原点是在左上角。而在flutter中,坐标系的原点在父控件的正中心,可以使用这个alignment属性来控制子控件在父控件中的位置,它有两个参数分别是double类型的x,y。取值是-1到1,当0,0的时候表示子控件在父控件的正中心;当1,0的时候,表示子控件位于x方向上的最右侧,y方向上居
原创
发布博客 2021.07.27 ·
381 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

八天让iOS开发者上手Flutter!(一)

flutter现在是越来越火了,现在作为一个iOS开发,如果你不会flutter都好像不算个正常人似的?而且现在的flutter情况,有点像2012年那会儿刚刚兴起的iOS,Android开发一样,会点皮毛UI就可以提升不少身价…这些年过来,有无数的前端跨平台框架兴起。却只有flutter一家独秀,说明它还是有两把刷子的。今天这篇文章内容是基于Mac和Android Studio基础来开发flutter的,如果你还没有配置好开发环境,可以在网上搜索,或者直接到官网安装。这篇文章主要用来记录我学习flutte
原创
发布博客 2021.07.26 ·
1176 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏

iOS开发高仿抖音,上下切换、横竖屏播放!

好久没写文章了,最近有点时间,模仿了一个抖音视频上下滑动切换播放功能,顾记录下实现方案,共勉。一、先说下大致思路:1.UITableView : Cell上展示视频第一帧图片,点赞,评论,头像等参数2.封装一个视频播放View3.定义一个属性currentIndex,并添加他的观察属性,当currentIndex属性值改变时,处理视频播放功能4.UITableView滑动代理,处理视频上下滑动动画操作5.注意,整个UITableView中,只存在一个视频播放实例方法,这样性能提升直播功能的界.
原创
发布博客 2021.07.23 ·
3085 阅读 ·
0 点赞 ·
5 评论 ·
5 收藏

iOS项目入口的演变过程(2021)

UISceneDelegate是什么,它和AppDelegate有什么关系,Swift中的@main又是什么,本文将带你一一了解。这篇文章将主要讲解下面几点内容:iOS13之前的AppDelegate启动项目的流程UISceneDelegate的多窗口实现逻辑UISceneDelegate和AppDelegate的关系int main()和@main单Window的AppDelegate在iOS13之前iPhone上的项目都是单windows的,AppDelegate中的- (BOOL)
原创
发布博客 2021.07.22 ·
2743 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

手把手带你撸一个网易云音乐首页(下篇)

前言Hello, 大家好,今天准备和大家继续分享如何利用 Swift 来实现一个网易云音乐的首页;上篇文章发布以后,我收获了不少小伙伴的关注与点赞,同时也得到了一些非常有用的建议,在这里再次感谢大家的认可, 你们的鼓励与建议是我技术输出路上最大的动力。MVVM好了,回到正题,在项目中我们使用了 MVVM 模式,在上一篇文章中,我们讲完了 Model 和 ViewModel, 那接下来就开始讲 View 吧!如果有小伙伴是从这篇文章进入的,不妨先从我的上一篇文章看起,这样看下来才能保证你思路的连贯性。
原创
发布博客 2021.07.20 ·
555 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

手把手带你撸一个网易云音乐首页(上篇)

前言Hello,大家好,近期我一直在学习用 Swift 编码,由于之前很多项目我都是用 OC 实现的,所以导致我现在对 Swift 还是处于一个学习的阶段中。为了提高自己的学习效率,每次我都会为自己定下一个短期的目标,就那这次来说吧,为了加快自己上手 Swift, 我为自己定下了的目标就是完成一个 Swift 版本的网易云音乐 App。不知道大家在学习一门新语言的时候,是如何提高学习效率的?不妨在评论区与大家交流一下。调研分析先分析一下 iOS 端网易云音乐 App 的首页,如图所示:看完后,首
原创
发布博客 2021.07.19 ·
866 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

Swift模式参考!

模式代表了单值或组合值的结构。例如,元组(1,2) 的结构是用逗号分隔两个元素的列表。因为模式代表一种值的结构,而不是一个任何一个特殊的值,你可以用多种值与之匹配。举个例子,模式 (x,y) 可以匹配元组 (1,2) 以及其他任何两个元素的元组。除了将一个值与模式匹配,你还可以提取组合值的部分或全部,然后把各部分绑定到常量或变量上。在 Swift 中,模式出现在变量和常量的声明中(在它们的左边),在 for-in 语句和 s
原创
发布博客 2021.07.15 ·
203 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Swift声明参考!

一条声明可以在你的程序里引入新的名字和构造。举例来说,你可以使用声明来引入函数和方法,变量和常量,或者来定义 新的命名好的枚举,结构,类和协议类型。你也可以使用一条声明来延长一个已经存在的命名好的类型的行为。或者在你的 程序里引入在其他地方声明的符号。在swift中,大多数声明在某种意义上讲也是执行或同事声明它们的初始化定义。这意味着,因为协议和他们的成员不匹配, 大多数协议成员需要单独的声明。为了方便起见,也因为这些区别在swift里不是很重要,声明语句同时包含了声明和定义。GRAMMAR OF
原创
发布博客 2021.07.14 ·
323 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Swift属性参考!

属性 提供了更多关于声明和类型的信息。在 Swift 中有两种类型的属性,一种用于声明,一种用于类型。例如,required 属性-当用于类的指定或者便利初始化声明时-指明每个子类都必须实现它的初始化函数。noreturn 属性-当用于函数或者方法的类型时-指明函数或者方法无需返回值。你可以用字符 @ 加上属性名和属性参数来指定一个属性:@属性名@属性名(属性参数)含有参数的声明属性可以为属性指定更多的信息,可以用于特殊的声明。这些属性参数&n
原创
发布博客 2021.07.12 ·
237 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Swift语句参考!

在 Swift 中,有两种类型的语句:简单语句和控制流语句。简单语句是最常见的,用于构造表达式和声明。控制流语句则用于控制程序执行的流程,Swift 中有三种类型的控制流语句:循环语句、分支语句和控制传递语句。循环语句用于重复执行代码块;分支语句用于执行满足特定条件的代码块;控制传递语句则用于修改代码的执行顺序。在稍后的叙述中,将会详细地介绍每一种类型的控制流语句。是否将分号(;)添加到语句的结尾处是可选的。但若要在同一行内写多条独立语句,请务必使用分号。GRAMMAR OF A STATEMEN
原创
发布博客 2021.07.09 ·
246 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Swift表达式参考!

在Swift中,一共有四种表达法:前缀表达,二分表达,简单表达,和后缀表达。Evaluating an expression returns a value, causes a side effect, or both.前缀表达和二分表达可用来在简短语句中使用运算符。简单表达从概念上讲是获取值的最简单方式。后缀表达和前缀表达和二分表达相似,都可以让你建立更为复杂的表达方式;例如函数调用和成员获取等。我们将在本章节中详细解释每种表达方式。GRAMMAR OF AN EXPRESSIONexpress
原创
发布博客 2021.07.08 ·
213 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

Swift类型参考!

Swift 语言存在两种类型:命名型类型和复合型类型。命名型类型是指定义时可以给定名字的类型。命名型类型包括类、结构体、枚举和协议。比如,一个用户定义的类MyClass的实例拥有类型MyClass。除了用户定义的命名型类型,Swift 标准库也定义了很多常用的命名型类型,包括那些表示数组、字典和可选值的类型。那些通常被其它语言认为是基本或初级的数据型类型(Data types)——比如表示数字、字符和字符串——实际上就是命名型类型,Swift 标准库是使用结构体定义和实现它们的。因为它们是命名型类型,因
原创
发布博客 2021.07.07 ·
374 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多