- 博客(181)
- 资源 (13)
- 收藏
- 关注
原创 Docker - Dockerfile的使用
Docker - Dockerfile的使用快速入门编辑Dockerfile运行Dockerfile基础指令详解FROMRUNMAINTAINEREXPOSEENTRYPOINT文件指令详解ADDCOPY环境指令详解ENVWORKDIRDockerfile: 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。应用: 将部署过程中涉及到的所有步骤全部写入到 Dockerfile 中,到时只需要执行 Dockerfile 就可以自动完成相应的操作快速入门编辑Dockerfi
2021-02-01 09:18:00 257
原创 Docker - 网络管理
Docker - 网络管理随机端口映射指定端口映射多端口映射共享网络默认情况下,容器和宿主机之间网络是隔离的现在启动了一个 nginx 容器如图所示 nginx 使用了 80 端口,但是我们去浏览器里访问 localhost:80 是无法访问到 nginx 服务的这个时候可以通过端口映射的方式,将容器中的端口,映射到宿主机的某个端口上,从而使我们能够通过宿主机的 ip+端口 的方式来访问容器里的内容随机端口映射-P :自动绑定所有对外提供服务的容器端口,映射的端口会从没有使用的端口池
2021-02-01 09:17:04 204
原创 Docker - 数据管理
Docker - 数据管理拷贝数据宿主机文件 -> 容器内容器内 -> 宿主机文件数据卷管理数据卷容器创建数据卷模板容器基于数据卷模板创建容器与宿主机同步文件拷贝数据宿主机文件 -> 容器内docker cp 需要拷贝的文件或目录 容器名:容器内的目录路径如:把宿主机当前目录下的 lxf.sh 文件,拷贝到 lxfubuntu1 容器下的 /data 目录中docker cp lxf.sh lxfubuntu1:/data容器内 -> 宿主机文件docker c
2021-02-01 09:16:03 192
原创 Docker - 私有仓库Registry
Docker - 私有仓库Registry拉取私有仓库镜像设置私有仓库地址运行私有仓库镜像资源上传镜像拉取镜像搜索镜像列出仓库中所有的镜像列出指定镜像的所有标签删除镜像删除失败垃圾回收私有仓库: 在本地(局域网)搭建的一个类似公共仓库的东西,我们可以将镜像提交到私有仓库中,供局域网内的其它人拉取使用。本文以 Registry 为例,并在提供私有仓库的主机上操作拉取私有仓库镜像请先确保你当前拥有的镜像有 registry如果没有,可以先拉取下来docker image pull regis
2021-02-01 09:14:22 383
原创 Docker - 操作容器
Docker - 操作容器运行容器进入容器退出容器停止容器启动容器重启容器查看容器删除容器查看容器详情查看容器状态打包容器为新的镜像资源运行容器这里我使用 ubuntu 镜像,创建一个名为 lxfubuntu 的容器,并运行进入容器# docker run -it --name [容器名] [镜像名] /bin/bashdocker run -it --name lxfubuntu ubuntu /bin/bash命令参数详解:--name : 定义容器名称,如果不使用,则会随机产生一
2021-02-01 09:12:48 121
原创 Docker - 操作镜像资源
Docker - 操作镜像资源搜索镜像资源拉取镜像查看当前拥有的镜像查看镜像的详情信息删除镜像镜像标签导出镜像导入镜像查看镜像历史搜索镜像资源docker search nginx一般选择 STARS 数最大的拉取镜像比如拉取上提及的 nginx 镜像docker image pull nginx命令执行后就开始对镜像进行拉取了查看当前拥有的镜像镜像ID: 镜像的唯一标识,如果镜像ID相同,则说明是同一个镜像TAG: 用来区分不同的发行版本,如果不指定具体标记,则默认使用l
2021-02-01 09:11:22 210
原创 Docker - 安装、加速和基本使用
Docker - 安装、加速和基本使用安装方式一: Homebrew方式二: 桌面程序镜像加速镜像Daocloud其它配置LinuxmacOSWindows基本使用查看版本查看Docker信息Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上本文主要以 Mac 平台为例安装方式一: Homebrewbrew cask install docker方式二: 桌面程序我使用该方式
2021-02-01 09:08:29 313
原创 Swift 掌控Moya的网络请求、数据解析与缓存
Moya 在Swift开发中起着重要的网络交互作用,但是还有不如之处,比如网络不可用时,返回的 Response 为 nil,这时还得去解析相应的 ErrorCodable 可以帮助我们快速的解析数据,但是一旦声明的属性类型与json中的不一致,将无法正常解析; 而且对于模型中自定义属性名的处理也十分繁琐解决的方案有很多,不过我比较习惯使用 MoyaMapper ,不仅可以解决上述问题,还...
2018-10-27 20:07:32 3958
原创 Swift 优雅的适配大小
在日常开发中常常会对设备进行一定的适配,为了方便在多个项目里统一管理和使用,所以封装并开源了SwiftyFitsize这个库,可用于适配视图及字体大小GitHub: SwiftyFitsize最终的效果如下图所示安装使用Cocoapods安装,或手动拖入项目pod 'SwiftyFitsize'使用SwiftyFitsize在默认状况下所使用的参照宽度为iphone6的375...
2018-10-24 20:42:08 2278
原创 打造Moya便捷解析库,提供RxSwift拓展
一、概述1、相信大家在使用Swift开发时,Moya是首选的网络工具,在模型解析这一块,Swift版模型解析的相关第三方库有很多,本人最习惯用的就是SwiftyJSON。2、下面会开始讲解整个主要的开发功能与思想。3、以下内容是基于大家会使用Moya和SwiftJSON的前提下所著,还不会的同学可以先简单了解后再来阅读本篇文章哦~二、功能开发与思想讲解1、尝试模型解析...
2018-05-23 20:57:11 921
原创 iOS 面向协议方式封装空白页功能
为了良好的交互体验,相信大家在对待scrollView无数据时的提示页都会使用一些第三方来定制,最典型的就是使用DZNEmptyDataSet。但是每个界面都写一堆与DZNEmptyDataSetDelegate,DZNEmptyDataSetSource相关的代码就不太好,那一般情况下自然的就会采用继承的方式来避免。而Swift除了可以面向对象编程,它还可以面向协议编程。那可不可以也用协议...
2018-04-07 21:46:32 463
原创 iOS 组件化开发(四):fastlane实现pod自动化
在第一次组件化的时候,需要执行很多操作,这些操作可以在【iOS 组件化开发(一):远程私有库的基本使用】,这里就不再赘述,在组件化后的重复性操作就是升级,而升级这个过程是一模一样的。那么,我们有什么办法可以很方便的搞定这一过程来节约我们大量的时间呢?一、升级必备操作修改完核心代码后,一共还需要做以下几步:1、修改spec文件(修改s.version,s.description...
2018-04-06 21:34:55 1716
原创 iOS 组件化开发(三):加载资源文件
经过前两篇文章的学习,相信对组件化开发有了大致的了解,那我们这篇文章就来讲讲资源文件的加载吧这里我新建了一个LXFMain组件库,主要是用来显示TabBar的玩意,然后再进行组件化抽离出来,其中的过程这里不再赘述,还没了解过的同学建议先阅读下这两篇文章吧iOS 组件化开发(一):远程私有库的基本使用iOS 组件化开发(二):远程私有库的更新与子库这里跟之前不一样的地方在于多...
2018-04-06 21:29:39 2529
原创 iOS 组件化开发(二):远程私有库的更新与子库
在上一篇【iOS 组件化开发(一):远程私有库的基本使用】中我们已经实战了远程私有库的基本操作,但是组件不可能上传一次就完事了,随着业务的增加,我们的组件可能还需要添加更多的东西,或者修复一些问题,这就需要我们对私有库代码进行升级与维护这里以对基础组件里添加了一个Cache工具为例添加完成后我们需要更新到远程仓库一、更新远程仓库cd 到本地仓库的位置,执行以下操作...
2018-04-06 21:25:13 1684
原创 iOS 组件化开发(一):远程私有库的基本使用
随着项目功能的不断增加,越来越多的开发人员加入,业务主线也随之越来越多,造成耦合越来越严重,编译越来越慢,测试不独立等一系列问题。为了解决此类情况,我们可以考虑到使用组件化开发概念 组件化就是将一个单一工程的项目, 分解成为各个独立的组件, 然后按照某种方式, 任意组织成一个拥有完整业务逻辑的工程。优势独立:独立编写、编译、运行、测试重用:功能代码的重复使用。比如不同项目使...
2018-04-06 21:20:34 2544 3
原创 Cocoapods 创建第三方框架
一、上传项目到github将框架中的主要文件放入到一个指定文件夹中,比如叫Classes或者Lib都可以打开终端,cd到框架目录 cd /Users/lxf/xxxx/LXFPhotoHelper 初始化仓库git init将当前目录添加到缓存区git add .提交到本地仓库git commit -m '描述'添加远程仓库...
2018-04-04 11:34:20 470
原创 Python - 虚拟环境
平时在开发时我们都会先安装一些python需要的包,每次安装都会有一个版本,如果不同项目需要不同版本的包时就会出现不兼容的情况。应对这种情况我们就可以搭建多个虚拟环境来应对不同的环境需求,在虚拟环境中搭建一个Python项目运行所需要的那些包,将来根据运行的项目来切换不同环境即可我们可以在当前用户的家目录中找到【.virtualenvs】文件夹,查看当前所有的虚拟环境创建虚...
2018-04-02 17:47:07 173
原创 Swift 解决Debugger中无法获取变量值的问题
遇到这个问题已经很久了,由于忙于开发就没去管它,今天抽空看看问题并解决它,并记录下来,希望能帮那些也遇到这种的小伙伴们脱离苦海,阿弥陀佛~打断点运行项目并停于断点处,在控制台中敲入以下其中一条po 变量名orprint 变量名会出现出现问题的地方warning: Swift error in module 项目名.Debug info from this modul
2018-01-12 09:22:33 1374
原创 MAC OSX安装Python环境 + Visual Studio Code
MAC上开发python怎么能少得了python3环境呢,而安装python3环境的方式也有多种,这里仅选用并记录本人认为比较方便的方式安装HomebrewHomebrew是macOS 缺失的软件包管理器, 使用它可以在MAC上安装很多没有预装的东西,详细说明可以看查看官网打开终端,粘贴以下的命令/usr/bin/ruby -e "$(curl -fsSL https://raw.githubus
2017-11-26 15:50:04 7123
原创 RxSwift + MJRefresh 打造自动处理刷新控件状态
本文是基于 iOS - RxSwift 项目实战记录 所述,如果你还未阅读过,建议你最好还先阅读一遍,并下载Demo熟悉一下 : )前言MVVM的模式中,多出了ViewModel这个角色,将逻辑处理、网络请求等繁杂操作中ViewController中抽离出来,ViewController得以瘦身。 结合RxSwift架构,我们一般就会在ViewModel中定义一个input收集繁杂操作所需的信息
2017-10-24 13:06:37 3675
原创 iOS - 视频采集详解
苹果官方文档 - AVFoundation为了管理从相机或者麦克风等这样的设备捕获到的信息,我们需要输入对象(input)和输出对象(output),并且使用一个会话(AVCaptureSession)来管理 input 和 output 之前的数据流: 类名 简介 AVCaptureDevice 输入设备,例如 摄像头 麦克风 AVCaptureInput 输入端口 [使用其
2017-10-16 23:24:52 3793
原创 iOS - LXFDrawBoard 多功能小画板
LXFDrawBoard多功能小画板 GitHub: DemoUsage 将LXFDrawBoard拖入项目中,导入头文件LXFDrawBoard.h,需要什么笔刷可以在Brush文件夹中找到即可使用,具体使用方法可以参考DemoLXFDrawBoardDelegate返回需要添加的描述- (NSString *)LXFDrawBoard:(LXFDrawBoard *)drawBoard t
2017-09-25 18:35:05 411
原创 解决Xcode9 Swift4下Cocoapods编译Swift第三方时报错
随着Xcode9 Swift4 的到来,一些小问题也接踵而至。许多优秀的Swift第三方框架还未来得及迎接Swift4的到来,它们还停留在swift3.x的状态,这个时候新建一个项目,使用cocoapods写上需要使用的第三方,一编译就是满屏红,如下图。 所幸,苹果每次升级Xcode都会上个版本的swift,以防暴乱��~~有两种解决方案 其本质都是控制编译时所使用的Swift版本第一种:Xco
2017-09-22 15:32:00 2369
原创 iOS - RxSwift 项目实战记录
最近刚刚把接手的OC项目搞定,经过深思熟虑后,本人决定下个项目起就使用Swift(学了这么久的Swift还没真正用到实际项目里。。。),而恰巧RxSwift已经出来有一些时间了,语法也基本上稳定,遂只身前来试探试探这RxSwift,接着就做了个小Demo,有兴趣的同学可以瞧一瞧~结构.├── Controller│ └── LXFViewController.swift // 主视
2017-09-08 16:38:30 10108 1
原创 Xcode8 最快最方便的安装插件方案
自从Xcode8出来后,为了安全起见,给Xcode安装插件就惨遭苹果封杀,随后出现很多解决方案,其中有一种比较完美的方案: 教你如何科学的在Xcode8上使用插件,但是用过这个方案的同学会发现每次运行并安装插件之前需要添加当前Xcode的DVTPlugInCompatibilityUUID,相当麻烦,而且安装完这个插件,上个或者上上个插件就失效了(随机的,也可能不会),不知道大家有没有遇到,反正我
2017-08-19 15:15:00 7683 6
原创 iOS - 给高仿微信添加直播聊天功能
抽空给之前做的开源项目【高仿微信】添加直播功能,由于时间有限,做得不是很完美,有空再去完善吧,能用就好~~注意:直播功能的使用(对方需要先进入到对应的聊天界面) 两个测试账号: lxf lqr 密码都是123456推流首先第一件事当然就是搭建一个推流服务器,这里请跳转参考我之前写好的文章吧【Ubuntu 安装nginx 来搭建推流服务器】,这里我的服务器的ip地址是:192.168.
2017-08-19 08:29:34 1222
原创 Ubuntu 安装nginx 来搭建推流服务器
安装nginx安装两个依赖库sudo apt-get install autoconf automakesudo apt-get install libpcre3 libpcre3-dev安装zlib库sudo apt-get install opensslsudo apt-get install libssl-dev如果安装命令回车之后出现如下信息,请参考【Ubuntu “无法获得锁”解决方案
2017-07-23 14:06:50 1265
原创 一份Cocoapods支持多个target
我们都知道,Xcode新建的一个project,可以包含对个target,默认包含了一个与project同名的target,有时候我们可能会在原来的基础上添加多个target(如下图),但是我们却发现在新增加的target的控制器文件下导入不了pods下的第三方库现在在新建的target下导入SVProgressHUD,就显示报错了 原因很简单,因为我们的Profile中只针对LXFPorje
2017-07-16 11:13:35 2452
原创 iOS - 采集音视频及写入文件
音视频采集包括两部分:视频采集和音频采集。在iOS中可以同步采集视频与音频,通过系统框架AVFoundation,可以帮助我们采集音频与视频,对于视频还可以进行切换前后摄像头,最终我们将录制好的视频写入沙盒中音视频数据的采集与展示一、初始化视频的输入与输出// 懒加载一个session,所有的操作都需要session来执行fileprivate lazy var session: AVCapt
2017-07-15 22:20:01 1641
原创 iOS - 揭露Block的内部实现原理
想必大家对block都很熟悉了,虽然都会用,但是你真的知道它的原理吗?比如为什么要加上__block,这个修饰符到底有什么用?不加会有什么后果?block又是如何实现的等等。。。该篇文章就为大家揭晓关于Block的实现原理~抛砖引玉先给出问题,大家思考下结果吧,如果分别调用以下两个方法,结果如何?void blockFunc1(){ int num = 100; void (^
2017-07-01 21:24:47 777
原创 解决Cocoapods贼慢问题
做为一个iOS开发者,时不时就要与一些好用的框架或者库打交道,而且大多数还是国外的地址,访问相当慢,所以也就引发了一系列贼慢的问题,该篇文章就来好好总结下解决方案一、更换gem源// 查看现有的源gem source -l 我之前换过淘宝的源,在这里就会显示【 http://ruby.taobao.org/ 】*** CURRENT SOURCES ***http://ruby.taobao.
2017-06-25 20:57:42 3627
原创 iOS - Swift 创建代理协议的多种方式
假如有一个类为 LXFView,现在要为这个类创建一个代理协议,我们该如何做呢?首先,代理协议的命名方式:类名 + Delegatevprotocol LXFViewDelegate { func view(_ view: LXFView)}当我们创建的协议遵守其它协议的情况下,只是这样写并不会报错,接下来我们在LXFView中添加一个代理属性,为避免循环引用,代理属性需要用weak修饰
2017-05-11 00:07:28 1884
原创 iOS - 解决Warning: Attempt to present <> which is already presenting <>
Warning: Attempt to present < LXFPhotoHelper: 0x1049b5e00 > on < UIApplicationRotationFollowingController: 0x101bd4fc0 > which is already presenting < UIAlertController: 0x101e63100 >问题提示我们在弹出LXFPhot
2017-04-24 14:46:58 4122
原创 iOS - UILabel设置行间距及文字居中
// 调整行间距NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];// 设置文字居
2017-02-28 13:30:49 11775
原创 iOS - Swift UIButton中ImageView的animationImages动画执行完毕后,图标变暗
情况 贴出重要代码// 设置按钮图片动画数组voiceButton.imageView?.animationImages = [ #imageLiteral(resourceName: "message_voice_sender_playing_1"), #imageLiteral(resourceName: "message_voice_sender_playing_2"),
2017-01-14 17:01:32 1666
原创 iOS - Swift 判断tableView现在是否在最底部
情景有时候在做聊天软件的时候,要求只有当聊天消息列表处于最底部时才滚动,不然就保持原样步骤先创建一个变量来存储是否在最底部// MARK: 存储变量// 当前是否在最底部var currentInsInBottom = false实现方法来监听滚动func scrollViewDidScroll(_ scrollView: UIScrollView) { let height = scr
2017-01-14 09:59:12 1999
原创 iOS - Swift 判断UITableView是否已经滚动到最底部
// 当前是否在最底部var currentInsInBottom = falsefunc scrollViewDidScroll(_ scrollView: UIScrollView) { let height = scrollView.size.height let contentOffsetY = scrollView.contentOffset.y let bott
2017-01-07 08:52:08 3216
原创 iOS - Swift UITableView的scrollToRow的"坑"
简介在tableView中,我们一般会用到scrollToRow这个来控制tableView滚到指定的某一行。一般写法如下所示// MARK: 滚到底部func scrollToBottom(animated: Bool = false) { if dataArr.count > 0 { tableView.scrollToRow(at: IndexPath(row: da
2017-01-07 08:28:03 3329
原创 iOS - Swift 仿微信聊天图片显示
效果图如图所示,图片左侧有个小箭头 原理其实原理比较简单,准备一张图片MaskImgae,先对其进行拉伸,然后按照其轮廓对图片进行裁剪就行了 步骤这里摘重点说,布局什么的按自己意愿去弄吧。我固定了图片的显示大小为 102 * 1521、对MaskImgae进行拉伸// 设置拉伸范围let stretchInsets = UIEdgeInsetsMake(30, 28, 23, 28)// 待
2017-01-04 00:01:17 1535
xcode 12.1 (16B92)_developer_diskimage
2018-11-26
OpenCollada 3dsMax Maya插件
2017-05-19
xcode 10.3(14E269)_developer_diskimage 支持10.3(14E277)
2017-03-31
Xcode iOS_10.2 (14C92)_developer_diskimage
2017-01-13
阿里云服务器linux web环境一键安装包 1.5.5
2016-11-06
iOS10 SDK下载
2016-10-08
iOS 9.2 真机调试 Disk Image
2016-03-29
iOS 9.3 真机调试 Disk Image
2016-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人