- 博客(104)
- 收藏
- 关注
原创 使用Swift学习数据结构和算法
主要分定义目录标题)欢迎使用Markdown编辑器线性表![linear_list.png](https://img-blog.csdnimg.cn/img_convert/a4dedd7289cd48a635392e3c5f7e69线性表[外链图片转存中…(img-BGgz0bNe-1628053185631)]**Ma链表-的链表是一种链式存储线性结构, 所有元素的内存地址不一定是连续的下表是为四种链表和测试项目中对应的类名class List<E: Comparable..
2021-08-04 13:02:48
344
原创 Flutter 必备开源项目推荐
这段时间内一直学习Flutter, 自行设计完成了一个实战项目mahua_pet项目中用到了flutter中的大部分的组件, 界面也涉及了很多功能(可能很多地方还有待完善)项目目前也还是处在开发待完成阶段, 主要内容差不多已经完成下面是一些UI界面展示, 后面推见一些比较好的开源项目验证码登录和密码登录都可以登录, 账号: 123 密码: 123部分界面展示首页动态的展示导航栏的显示和隐藏日历模块展示日历的记录, 每日记录生成图片和保存图片发现类似朋友圈的内容展示, 图片浏览和.
2020-11-20 21:05:30
3067
原创 Flutter中Widget的生命周期和渲染原理
原文博客地址: Flutter中Widget的生命周期和渲染原理之前的Flutter系列文章中都有介绍一些常用的Widget这里就主要了解Flutter的渲染原理和Widget的生命周期Flutter中Widget的生命周期StatelessWidget是通过构造函数(Constructor)接收父Widget直接传入值,然后调用build方法来构建,整个过程非常简单而StatefulWidget需要通过State来管理其数据,并且还要监控状态的改变决定是否重新build整个Widget这..
2020-06-19 08:50:45
1324
原创 Flutter开发之Dart中的类和对象
原文博客地址: Flutter和Dart系列文章上次学习Flutter已经是整整一年前的事情了,之后因为工作重心主要放在了React Native开发形式上现在重新捡起Flutter, 也是计划系统性的从头开始重新学习Dart和Flutter这篇Dart笔记主要就是记录Dart语言中的类和对象类及其构造方法Dart也是一门面向对象的开发语言,面向对象中非常重要的概念就是类,通过类的初始化创建一个对象类的定义在Dart中,定义类用class关键字当未指明其父类的时候, 默认是继承自O...
2020-05-21 00:05:57
597
原创 浅谈Swift的内存管理
原文博客地址: 浅谈Swift的内存管理2020年的第一篇博客, 算是2020年开了个好头, 希望能够继续坚持下去, 继续记录分享更多更高质量的文章今年期待已久的Swift5.0稳定版就已经发布了, 感兴趣的小伙伴可看我的这篇博客:Swift 5.0新特性更新这篇博客可主要分享Swift的内存管理的相关介绍和剖析, 测试环境: Xcode 11.2.1, Swift 5.1.2内存...
2020-01-02 20:23:39
662
原创 浅谈Swift的属性(Property)
原文博客地址: 浅谈Swift的属性(Property)今年期待已久的Swift5.0稳定版就已经发布了, 感兴趣的小伙伴可看我的这篇博客:Swift 5.0新特性更新这篇博客可主要分享Swift的属性的相关介绍和剖析, 测试环境: Xcode 11.2.1, Swift 5.1.2属性分类在Swift中, 严格意义上来讲属性可以分为两大类: 实例属性和类型属性实例属性(Ins...
2019-12-20 21:45:13
622
原创 Sign In with Apple
原文博客地址: Sign In With Apple在之前的文章iOS13适配深色模式(Dark Mode)中只是简单提到了关于Sign In With Apple的问题, 下面就着重介绍一下什么是Apple登录对于很多应用都会有自己的账号登录体系, 但是一般都相对繁琐, 或者用户会忘记密码等, 为此一般都会接入微信、QQ登录, 国外应用也会有Google、Facebook等第三方登录方式...
2019-10-08 18:54:28
1007
原创 iOS13适配深色模式(Dark Mode)
原文博客地址: iOS13适配深色模式(Dark Mode)好像大概也许是一年前, Mac OS系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iPhone11等新手机的发售, iOS 13系统也正式发布了, 伴随着手机版的深色模式也出现在了大众视野我们这些iOS程序猿也有事情做了, 原有项目适配iOS13系统, 适配Dark Mode深色模式虽然现在并没有要...
2019-09-27 19:39:12
4121
1
原创 NSRunLoop底层原理详解
原文博客地址: NSRunLoop底层原理详解正常情况下, 一个线程执行完, 程序就会立即退出, 比如一个命令行项目NSRunLoop是iOS中的消息处理机制,执行完某个事件后线程不会退出,而是进入休眠状态,当再次监测到需要出发事件时,线程激活,继续处理事件,处理完成后再次进入休眠这种时间运行循环, 类似于一个while循环默认情况下, 不需要我们手动创建RunLoop, 因为coco...
2019-08-20 22:16:07
594
原创 ReactNative之iOS原生和JavaScript的交互
原文博客地址: https://www.titanjun.top/ReactNative之iOS原生和JavaScript的交互.html在ReactNative开发中, 在JavaScript语法无法实现的时候会涉及到一些原生开发, 既然是混合开发就会涉及到一些iOS和ReactNative之间通讯的问题, 这里就涉及到两种方式:RN调用原生的方法, 给原生发送数据原生给RN回传数...
2019-08-17 14:42:03
1163
2
原创 浅谈OC中Block的本质
Block简介block是将函数及其执行上下文封装起来的一个对象在block实现的内部,有很多变量,因为block也是一个对象其中包含了诸如isa指针,imp指针等对象变量,还有储存其截获变量的对象等原文博客地址: 浅谈OC中Block的本质定义和使用block根据有无参数和有无返回值有以下几种简单使用方式// 无参数无返回值void (^ BlockOne)(void) =...
2019-06-27 20:59:03
1224
原创 探索KVC和KVO的本质
原文链接: 探索KVC和KVO的本质这篇文章主要介绍KVO和KVC, 机器底层是如何实现的KVO的全称是Key-Value Observing,俗称键值监听,可以用于监听某个对象属性值的改变KVO是使用获取其他对象的特定属性变化的通知机制,控制器层的绑定技术就是严重依赖键值观察获得模型层和控制器层的变化通知的对于不依赖控制器层类的应用程序,键值观察提供了一种简化的方法来实现检查器并更新用...
2019-06-12 17:46:14
255
原创 Flutter之可滑动Widget
Flutter和Dart系列文章和代码GitHub地址在Flutter中, 当内容超过显示视图时,如果没有特殊处理,Flutter则会提示Overflow错误Flutter提供了多种可滚动(Scrollable Widget)用于显示列表和长布局可滚动Widget都直接或间接包含一个Scrollable, 下面是常用的几个可滚动的WidgetSingleChildScrollVie...
2019-05-17 20:54:22
2013
原创 Flutter中App的主题和导航
Flutter和Dart系列文章和代码GitHub地址Flutter一切皆Widget的核心思想, 为我们提供了两种主题风格CupertinoApp: 一个封装了很多iOS风格的小部件,一般作为顶层widget使用MaterialApp: 一个封装了很多安卓风格的小部件,一般作为顶层widget使用, 下面我们先看下这个WidgetMaterialApp这里我们先看看Materi...
2019-05-05 21:09:50
1100
原创 Flutter之容器类Widget
Flutter和Dart系列文章项目GitHub地址容器类Widget和布局类Widget都作用于其子Widget,不同的是:布局类Widget一般都需要接收一个widget数组(children),他们直接或间接继承自(或包含)MultiChildRenderObjectWidget而容器类Widget一般只需要接受一个子Widget(child),他们直接或间接继承自(或包含)...
2019-04-29 21:34:28
539
原创 Flutter之基础Widget之TextField
Flutter和Dart系列文章项目GitHub地址上一篇Flutter之基础Widget文章介绍了Flutter中基础的Widget, 但是由于篇幅的原因, 这篇文章就主要介绍TextFieldTextFieldTextField用于文本输入,它提供了很多属性,我们先简单介绍一下主要属性的作用const TextField({ Key key, // 编辑框的控...
2019-04-26 16:59:20
1296
原创 Flutter之布局类Widget
原文博客地址: Flutter之布局类Widget相关博客系列文章: Flutter和Dart系列文章相关Demo地址: GitHub地址布局类Widget都会包含一个或多个子widget,不同的布局类Widget对子widget排版(layout)方式不同上一篇文章中提到: Widget实际上就是Element的配置数据, Widget的功能是描述一个UI元素的一个配置数据, 而真...
2019-04-25 19:52:12
626
原创 Flutter之基础Widget
原文博客地址: Flutter之Text和ImageFlutter和Dart系列文章项目GitHub地址Flutter作为一种全新的响应式,跨平台,高性能, 完全免费、开源的移动开发框架Widget是Flutter开发中的主要组成部分, 是Flutter的基础, Flutter的核心设计思想便是: 一切皆WidgetFlutter中的widget的概念更广泛,它不仅可以表示UI元素...
2019-04-19 17:30:17
597
原创 ReactNative之手势识别
原文博客地址: ReactNative之手势识别移动开发中最重要的就是交互, 说到交互, 就不得不说触摸事件在iOS中有单击, 双击, 长按, 拖拽等触摸操作在React Native中点击手势都有其对应的组件, 每个组件都可以用来包裹视图来响应用户的点击事件TouchableWithoutFeedback响应用户的点击事件, 点击操作时, 组件没有任何视觉反馈,看起来像Web...
2019-04-10 14:03:50
370
原创 Flutter开发之Dart的数据类型02
原文博客地址: Flutter开发之Dart的数据类型02这几篇文章都是在学习Dart过程中所记录的学习笔记, 都是一些基础知识, 几乎没什么技术含量, 主要是方便后期使用的时候方便查阅之前的一篇文章已经介绍了一部分的数据类型Flutter开发之Dart的数据类型01, 这里主要记录剩下的一些常用的数据类型我写的Flutter和Dart语法系列相关的文章, 有兴趣的可参考随便看看M...
2019-03-01 09:28:23
1765
原创 Flutter开发之Dart的数据类型01
原文博客地址: Flutter开发之Dart的数据类型01这几篇文章都是在学习Dart过程中所记录的学习笔记, 都是一些基础知识, 几乎没什么技术含量, 主要是方便后期使用的时候方便查阅我写的Flutter和Dart语法系列相关的文章, 有兴趣的可参考随便看看Dart数据类型Dart内置的数据类型中, 支持以下几种数据类型numbers(数字)strings(字符串)boo...
2019-02-20 10:35:25
1315
原创 Flutter开发之Dart语法基础
原文博客地址: Flutter开发之Dart语法基础Dart是谷歌在 2011 年推出的编程语言,是一种结构化Web编程语言,允许用户通过Chromium中所整合的虚拟机(Dart VM)直接运行Dart 语言编写的程序,免去了单独编译的步骤以后这些程序将从Dart VM更快的性能与较低的启动延迟中受益Dart从设计之初就为配合现代web整体运作而考虑,开发团队也同时在持续改进Dart...
2019-02-19 14:49:12
866
原创 Flutter的安装和配置
https://titanjun.oss-cn-hangzhou.aliyuncs.com/ios/staticFramework.jpg?x-oss-process=style/titanjun原文博客地址: Flutter的安装和配置Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面, 并且是未来新操作系统Fuchsia的默认开发套件在全...
2019-02-12 21:01:47
1253
原创 Swift5.0新特性更新
原文博客地址: Swift 5.0新特性更新期待已久的Swift 5.0终于来啦, Swift 5.0是Swift中最备受关注的一个版本, 传说中API稳定的版本随着Xcode Bate 10.2的发布, Swift 5.0也发布了测试版, 相信也带来了很多优化和改进下面运行环境都是在Xcode Bate 10.2环境中进行的新特性dynamicCallableSE-0216...
2019-01-28 15:41:57
5589
原创 JavaScript基本语法03
原文博客地址: JavaScript基本语法03书接上文JavaScript基本语法, 记录了JavaScript的记录了相关数据类型和函数等相关语法这里主要记录浏览器对象模型(BOM), window对象和文档对象模型(DOM)BOMBOM:浏览器对象模型(Browser Object Model),是一个用于访问浏览器和计算机屏幕的对象集合。我们可以通过全局对象window来访...
2018-12-14 15:46:03
520
原创 Socket搭建即时通讯服务器
即时通讯相关代码Demo地址, 内附服务端代码和iOS端聊天室测试Demo原文地址: Socket搭建即时通讯服务器即时通讯(Instant messaging,简称IM)是一个终端服务,允许两人或多人使用网路即时的传递文字讯息、档案、语音与视频交流即时通讯按使用用途分为企业即时通讯和网站即时通讯根据装载的对象又可分为手机即时通讯和PC即时通讯,手机即时通讯代表是短信,网站、视频即...
2018-11-16 16:14:42
1068
2
原创 iOS的静态库和动态库
静态库简介什么是库?库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行库就是程序代码的集合, 是共享程序代码的一种方式库从广义上可分为开源库和闭源库, 而闭源库才分为静态库和动态库 开源库: 对外公开源代码, 能看到具体的代码实现, 例如Github上面的第三方开源库都称之为开源库闭源库: 不公开源代码, 文件是经过编译后的二进制文件, 看不到具体实现, 例如....
2018-09-12 13:55:29
689
原创 移动开发之Fastlane自动化
原文博客地址: 移动开发之Fastlane自动化在组件化开发过程中, 提交一个私有库需要执行很多操作和命令, 详情可参考iOS组件化之私有库然而开发和更新私有库的大量操作却都是重复性的: 修改spec文件, 提交到远程仓库, 打标签等所以有没有什么办法可以自动执行, 实现自动化管理呢?何为自动化: 自动化就是通过一条简单的命令, 去执行一组固定的操作 自动创建和维护iOS代码签名证...
2018-09-10 16:19:43
858
原创 iOS组件化之私有库
随着公司业务的不断发展,应用的代码体积将会越来越大,业务代码耦合也越来越多,代码量也是急剧增加如果仅仅完成代码拆分还不足以解决业务之间的代码耦合,而组件化是一种能够解决代码耦合、业务工程能够独立运行的技术这篇文章主要介绍远程私有库的创建和管理以及本地索引库的使用, 并且可参照发布开源框架到CocoaPods入坑指南个人原文博客地址: iOS组件化之私有库本地库方案创建...
2018-08-30 09:33:40
724
原创 Realm在iOS中的简单使用
一、## Realm简单介绍1、Realm简介Realm是由美国YCombinator孵化的创业团队历时几年打造,第一个专门针对移动平台设计的数据库Realm是一个跨平台的移动数据库引擎,目前支持iOS、Android平台,同时支持Objective-C、Swift、Java、React Native、Xamarin等多种编程语言Realm并不是对SQLite或者CoreData...
2018-08-10 11:39:54
1975
原创 Mac环境下Redis的安装和基本命令的使用
上文中介绍了NoSQL和MongoDB的相关知识: MongoDB的安装及基本命令和pymongo的使用这里主要介绍key-value存储星数据库–RedisRedis简介Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库Redis与其他key - value缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存...
2018-07-25 09:31:14
4574
1
原创 MongoDB的安装及基本命令和pymongo的使用
Mac中MongoDB的安装以及基本命令和pymongo的使用一、 NoSQL简介1、NoSQL介绍NoSQL全名为Not Only SQL, 指的是非关系型数据库, 在现代的计算系统上每天网络上都会产生庞大的数据量, 网站的数据库性能可能出现问题, NoSQL便应运而生了NoSQL是一项全新的数据库革命性运动, 提倡运用非关系型的数据存储NoSQL用于超...
2018-07-23 21:12:15
2467
原创 R.Swift高效引用资源文件
原文博客地址: R.Swift高效引用资源文件在iOS中当我们引用一张图片的时候, 我们需要创建一个UIImage对象去引用图片当我们需要解析json或者plist文件的时候, 通常以Bundle.main的方式去解析let oldImage = UIImage(named: "yellow-image")let jsonData = Bundle.main.path(forRe...
2018-07-20 16:26:23
2361
原创 Mac环境下MySQL的安装和基本命令的使用
原文博客地址: Mac环境下MySQL的安装和基本命令的使用MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数...
2018-07-20 15:29:32
2076
原创 iOS私有Api检测
个人原文博客地址: iOS私有Api检测最近提交APP审核被苹果的审核人员是虐的不要不要的, 一直都说是使用了私有API但是我使出了浑身解数, 也没找到自己写的代码里哪里用到了私有API, 最后网上找了一些检测私有API的方法才发现在SDK里面涉及到了下面就检测私有API的方法简单介绍一下指定私有API这是最显而易见的, 也是最方便解决的可能出现私有API的情况当然这...
2018-07-16 19:19:11
2227
原创 Python中常用的模块
个人原文博客地址: Python中常用的模块上一篇文章中记录了Python中模块的使用, 这里就是记录一些常用的模块最近学习中发现, 之前接触的模块好多却都忘记了怎么使用这里就简单总结一下os, random等模块的使用吧os模块os模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录, 这些我们日常手动需要做的操作环境变量# 1. 获取...
2018-07-16 19:16:04
665
原创 发布开源框架到CocoaPods入坑指南
个人原文博客地址: 发布开源框架到CocoaPods入坑指南在开发过程中一定会用到一些第三方框架, 只要安装了CocoaPods, 然后通过pod install命令, 就可以集成框架到项目中了可是如果想要把自己的框架或者组件也开源出去, 让别人也可以使用, 那该如何入手 ?对于CocoaPods还不是很了解的或者没有安装的童鞋, 可自行百度或者参考用CocoaPods做程序的依赖...
2018-06-29 20:34:59
244
原创 Python之高阶函数
个人博客地址: Python之高阶函数做过Swift开发的童鞋都知道, 在Swift中有许多的高阶函数(Map, Filter, Reduce, Zip等), 这些在开发中让我们节省大量代码Python中同样有许多的内置函数, 但是这里也只介绍几个常用的高阶函数map映射根据提供的函数对指定序列做映射, 并返回映射后的序列map(function, iterable...
2018-06-28 16:47:48
766
原创 Tkinter之组件布局和事件绑定
原文博客地址: Tkinter之组件布局和事件绑定前面的一些文章介绍了Tkinter模块和大部分组建的使用这里主要介绍数据的操作和组件布局等GitHub代码示例目地址一. 数据显示在tkinter中的数据展示方式有两种表格数据和树状数据, 但是都用到同一个组件Treeview, 下面介绍组建的使用1. 表格数据表格数据, 顾名思义就是用表格形式展示数据...
2018-06-26 16:59:02
4438
原创 Python 编程之Tkinter的使用02
Tkinter是Python的标准GUI库。Python使用 Tkinter可以快速的创建GUI应用程序。由于Tkinter是内置到python的安装包中、只要安装好Python之后就能import Tkinter库、而且IDLE也是用Tkinter编写而成、对于简单的图形界面Tkinter还是能应付自如上一篇文章介绍了Tkinter模块和Button, Label等部分控件这里主...
2018-06-25 19:47:25
558
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人