自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

samuelandkevin的专栏

千里之行,始于足下

  • 博客(185)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS-Swift与OC混编ipa包增大,APP如何瘦身?

至今,推出swift已经是第三个年头了,小哥本着学习的心态,大胆地尝试在旧项目中用Swift编写。OC与Swift混编后,感觉吊吊地,但某一天要发布应用时,心情就纠结了。本地AD hoc打包30.4M,发布应用到商店并且成功上线,发现APP体积为48.8M,心情非常惊讶。同事产品需求要把APP体积降到10M,一阵....。那么,APP如何瘦身呢?

2017-07-15 11:18:28 8807

原创 iOS-学习资源看我就够了

iOS学习视频及资料即时通讯直播类iOS优秀项目开源代码Native和H5交互swift学习ReactiveCocoa学习3DTouch折线图蓝牙静态库Runtime运行时多媒体图文混排Github资源大汇总AutoLayoutiOS大全微信小程序学习资源网络多线程数据库性能优化图像处理事件响应GCD动画内购设计模式iOS逆向工程推送其他

2017-05-15 11:22:49 2903 1

原创 iOS-YHChat仿微信聊天(老司机带你入门即时通讯)

iOS-YHChat仿微信聊天(老司机带你入门即时通讯)

2017-02-17 10:07:50 9588 5

原创 iOS-仿微信表情键盘的实现YHExpressionKeyBoard(基于Masonry和YYKit)

iOS-仿微信表情键盘的实现YHExpressionKeyBoard(基于Masonry和YYKit)

2017-02-14 17:11:53 3059 1

原创 iOS-仿赤兔、新浪微博动态列表(带评论、点赞、转发和分享,自动计算行高功能)

最近有空整理一下项目,做了一个仿赤兔、新浪微博动态列表(带评论、点赞、转发和分享,自动计算行高功能)的DEMO。HKPTimeLine   ,喜欢的可以star一下哦。 github:  https://github.com/samuelandkevin/HKPTimeLine       使用到的第三方框架有:Masonry,HYBMasonryAutoCellHeight,SDWebImage。

2016-11-16 15:31:44 10484

原创 iOS-FMDB+runtime封装,简单实用,省去复杂的sql语句.

在iOS开发中,为了得到以上SQL语句,如果是手动地添加模型属性,代码就冗余了,也就是增加代码量,可读性差,而且如果改变了模型的某个属性的名称,SQL语句相应的位置要发生改变。增,删,改,查,都要改变。如果是改变了一批属性名,这工作量简直是灾难性啊。那苹果有没有API可以动态的获取属性名,代替这复杂的语句呢?有,那就是runtime。相信大家对runtime已经很熟悉了。如果刚入门runtime,可以阅读标哥的技术博客的runtime专题,在那里帮你快速掌握runtime基本知识。

2016-11-07 13:30:35 5035

转载 AFN上传多张图片到服务器

第一步//获取图片 UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"添加照片" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertAction *cancel = [U

2016-05-18 21:05:58 6723

原创 iOS- flutter flavor 多环境Configurations配置

APP_DISPLAY_NAME**,意思是为不同环境添加不同的App名称。在这里我添加了4个Scheme,Dev、Test、MTest、Prod。选项中,输入: ${APP_DISPLAY_NAME}三、基于Runner项目添加新的Scheme,如下图。四、在Bulid Settings,点击左上角**+,为不同环境配置相应的bundle id。的Runner,选择Info选项,在。的Runner项目,选择。

2023-10-14 23:04:11 1541 1

原创 iOS- git对单个或者多个文件权限设置,使用pre-commit hook 和shell脚本,拦截校验

iOS git对单个或者多个文件权限设置,使用pre-commit hook 和shell脚本,拦截校验。

2023-08-12 18:48:37 534

原创 iOS-Charts柱状图常用特性

【代码】iOS-Charts柱状图常用特性。

2022-12-18 18:26:17 821 1

原创 iOS-通过preferredStatusBarStyle控制电池栏颜色

其中A是带UINavigationController的一个控制器;B是present出来的一个控制器,坑爹的来了,C又是B push出来的带UINavigationController的一个控制器;而且中间B是overCurrentContext类型的。A、B的状态栏需要是白色的,C是需要黑色的。在info.plist文件添加"View controller-based status bar appearance", 值YES。

2022-09-29 10:28:03 899

原创 iOS 组件化-发布组件到远程仓库

最近项目需要组件化,公共组件要推到远程仓库。因为涉及组件是否开源问题,以下发布组件方式会区分私有或者公有仓库推送。

2022-09-12 21:14:04 838

原创 iOS-静态库framework创建教程

iOS 创建静态库framework教程

2022-08-20 10:33:45 1112

原创 在Flutter中使用protobuf (Mac OS环境)

(1)下载protobuf zip包 https://github.com/protocolbuffers/protobuf/releases./configure make make check sudo make install sudo ldconfig检查是否安装成功: protoc --version(2) 安装 protoc_plugindart pub global activate protoc_plugin [版本号]eg:dart pub global acti

2022-01-28 17:57:37 1875

原创 iOS-箭头视图绘制

//// ViewController.swift// Draw////import UIKitimport CoreGraphicsclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view.

2021-11-27 17:42:28 814

原创 CocoaPods安装指定版本、卸载

前提:安装位置:/usr/local/bincocoapods安装:sudo gem install -n /usr/local/bin cocoapodscocoapods安装指定版本:sudo gem install -n /usr/local/bin cocoapods -v 1.10.0cocoapods移除:sudo gem uninstall -n /usr/local/bin cocoapods cocoapods-core cocoapods-deintegrate coc

2021-06-13 08:07:43 1614

原创 iOS-CoreData 中date对象数据在数据库的显示

前提条件:使用CoreData问题出现:在iOS开发过程中,假如使用到CoreData,保存时间的对象又用到date对象,当我们查看数据库的时候,发现date对应的秒数不是时间戳,怎么转换也转换不了正确的时间。原因:Core Data的date对象存的时间对象是使用timeIntervalSinceReferenceDate (相对与2001年1月1日)的时间对象解决方法:计算timeIntervalSince1970 与1970年1月1日相差的秒数通过计算得出:timeIntervalSince1

2020-12-06 14:48:38 454

原创 iOS-国际化脚本工具

准备条件1.准备环境,python、MacOS2.安装xlrd1.0 官方网址:http://pypi.python.org/pypi/xlrd3.demo,请求参看我的github https://github.com/samuelandkevin/iOS-LocalizeScript操作步骤(1)切换到iOS-LocalizeScript目录下(2)运行脚本:python run.py excel.xlsx(3)运行结果如下:(localize是自动生成的文件夹)其他说明exce

2020-10-25 14:04:07 1646

原创 iOS-Swift无限轮播图

import Foundationprotocol EHWelcomeScrollViewDelegate: class { /// 点击第几个 func scrollView(_ scrollView:EHWelcomeScrollView,didSelectIndex:Int) /// 显示下一个 func displayNext(_scrollView:EHWelcomeScrollView) }class EHWelcomeScrollView :

2020-06-25 09:05:32 478

原创 iOS-Storyboard入门指南

1 、在工程中创建一个storyboard文件,比如我现在"Authorization.storyboard”这个文件。然后我们可以在storyboard可视化视图中创建多个viewcontroller,navigationcontroller或者Storyboard Reference。如果storyboard中存在比较多VC,关键要找到入口,Storybord Entry Point。举...

2020-04-05 12:18:21 2317

原创 iOS-CoreData使用

1.创建文件1-1.新建可视化的dataModel新建文件 -> core data -> Data Model -> .xcdatamodeld (格式)在.xcdatamodeld可视化界面,Add Entity 创建实体。实体,就是跟数据库进行映射的对象。NSManagedObject — 对应数据库中的一条记录。2-2.新建NSManagedObject选...

2020-03-28 18:33:40 811

原创 Mac- SourceTree添加gitlab用户

1.查询是否本机已经有公钥文件cat ~/.ssh/id_rsa.pub2.如果提示No such file or directory,就执行:ssh -keygen -t rsa -C "your email address"3.前往gitee个人中心,设置ssh公钥。4. 克隆代码到本地git clone [email protected]:app/testgit参考资料:...

2020-03-22 17:39:19 5933

原创 iOS-cocoapods安装、卸载

查看CocoaPods组件安装位置which pod手动移除这个组件sudo rm -rf /usr/bin/pod查看gems中本地程序包gem list安装指定版本sudo gem install -n /usr/local/bin cocoapods -v 1.8.4移除指定版本sudo gem uninstall cocoapods -v 1.9.1参考资料...

2020-03-21 12:07:16 1347

原创 iOS-Jenkins常用操作命令

查找jenkins war地址在安装后有可能找不到war包地址,可以用mdfind命令本地查询下mdfind -name jenkins.war/usr/local/Cellar/jenkins/2.116/libexec/jenkins.warjenkins重新安装brew reinstall jenkins常用操作访问:http://localhost:8080/login...

2020-03-19 09:40:18 380

原创 iOS-单元测试

iOS进阶之单元测试-视频概念逻辑错误,通过断言XCTAssertEqualTDD,测试驱动开发shift+Command+0(开发者文档)调用顺序:+(void)setUp;-(void)setUp;//把杯子里面的水倒干净,重新进行测试。-(void)testExample;-(void)tearDown;-(void)setUp;-(void)testPerforman...

2020-03-18 16:28:55 283

原创 数据结构 - 树、二叉树、完全二叉树、真二叉树、满二叉树

01-树节点的度:子树的个数。树的度:所有节点度中的最大值。叶子节点:度为0的节点。非叶子节点:度不为0的节点。层数:根节点在第一层,根节点的子节点在第二层,以此类推节点的深度:从根节点到当前节点的唯一路径上的节点总数。节点的高度:从当前节点到最远叶子节点的路径上的节点总数。树的深度:所有节点深度中的最大值。树的高度:所有节点高度中的最大值。树的深度等于树的高度。有序树:树中...

2020-03-10 09:05:07 774

原创 时间复杂度

在程序中,假设每个分号代表执行一步。public class Main { /* 0 1 2 3 4 5 * 0 1 1 2 3 5 8 13 .... */ // O(2^n) public static int fib1(int n) { if (n <= 1) return n; return fib1(n - 1) + fib1(n - 2); }...

2020-03-09 17:47:29 152

原创 iOS-App Logo和闪屏图尺寸

App Logo20×20pt2x40×40px20×20pt3x60×60px29×29pt2x58×58px29×29pt3x87×87px40×40pt2x80×80px40×40pt3x120×120px60×60pt2x120×120px60×60pt3x180×180px1024×1024pt...

2020-03-03 17:10:20 1339

原创 iOS- load和initialize 子类,分类,父类,以及同名方法的调用顺序

+ (void)load1.+load方法加载顺序:父类> 子类> 分类 (load方法都会加载)注意:(如果分类中有A,B,顺序要看A,B加入工程中顺序) ,可能结果:( 父类> 子类> 分类A> 分类B ) 或者( 父类> 子类> 分类B> 分类A )2.+load方法不会被覆盖(比如有父类,子类,分类A,分类B,这四个load方法都会...

2020-02-19 18:34:30 3070

原创 iOS-SDWebImage实现原理

1、入口 setImageWithURL:placeholderImage:options: 会先把 placeholderImage 显示,然后 SDWebImageManager 根据 URL 开始处理图片。2、进入 SDWebImageManager-downloadWithURL:delegate:options:userInfo:,交给 SDImageCache 从缓存查找图片是否已经...

2020-02-19 10:35:55 407

原创 iOS- Mac基于Appium DeskTop的iOS自动化测试环境搭建

1.下载Appium-mac-1.15.1.dmg(本文是用到这版本),链接地址:https://github.com/appium/appium-desktop/releases下载依赖包 brew install carthage brew install node brew install npm npm install -g cnpm --registry=https://reg...

2020-02-19 10:03:55 805

原创 HTTP与HTTPS

(1)非对称加密算法理解?私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有的人。虽然服务器端向A、B客户端的方向还是不安全的,但是至少A、B客户端向服务器端方向是安全的。如果只使用同样的加密算法,相当于无用。(2)为啥要协商?因为一个服务器和多个客户端需要不同的对称加密算法。HTTPS同时需要对称和非对称加密算法服务...

2020-02-15 11:12:58 338

原创 iOS-无痕埋点设计

设计分案设置两个pod组件库,一个负责hook事件,一个负责收集埋点数据,本地持久化,合适时机上传。hook系统的各种事件(UIResponder、UITableView、UICollectionView代理事件、UIControl事件、UITapGestureRecognizers)注意点(1)如何标识一个控件元素:答:利用xpath(以当前的view到系统根元素的所有关键点串联起)(...

2020-02-12 11:12:47 447

原创 iOS-完美解决系统键盘联想输入时,字数限制失效问题

1.首先定义一个属性变量///字数限制@property(nonatomic,assign)NSInteger countLimit;///输入框@property(nonatomic,strong)UITextField *tf; 2.在初始化监听UITextField的输入变化通知。[[NSNotificationCenter defaultCenter] addObserve...

2020-01-04 17:53:31 1277 2

原创 服务器内存不足解决方法

最近,在阿里云ECS尝试搭建两个应用。(服务器硬件信息:CPU:1核 内存:1 GiB)1.在指定端口号启动war包nohup java -jar jenkins.war --httpPort=8088 &2.启动另外一个应用nohup java -jar my-site-1.0.2.RELEASE.jar &3.结果发现启动后一个应用,系统会把前一个应用ki...

2019-09-15 10:06:44 5015

原创 个人博客网站搭建

准备资源软件资源:tomcat ,maven,nginx,mysql,其他:阿里云服务器ECS,域名申请,个人网站备案(8天以内,实际用了7天包含周末)。注意:重启ECS后,要手动打开nginx、tomcat、运行网站的jar包。我的博客域名IP:http://47.107.251.92/域名:http://www.samuelandkevin.cnMac alias 使用1...

2019-07-30 09:25:03 348

转载 Mac环境下使用charles进行https抓包分析

一、配置Charles软件1.打开Charles软件,找到Proxy菜单后打开Proxy Settings配置项,勾选图示中的相关选项2.找到Help菜单栏中的SSL Proxying,选择Install Charles Root Certificate,按照提示完成证书的安装工作3.刚安装之后的证书,是不被系统信任的,将其改成系统信任方式:右键选中Charles证书文件,点击“显示简介...

2019-07-13 17:18:58 4650

原创 Python-入门笔记

标识符1.私有成员表示方法:双下划线开头__foo 2.Python 特殊方法专用的标识:双下划线开头和结尾__init__()行和缩进1.不使用大括号 {} 来控制类2.缩进来写模块。注意:缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行if True: print "True"else: print "False"多...

2019-05-11 20:52:12 164

原创 数据结构-常用知识点

链表单向链表 O(n)双向链表 O(1)双向链表1.添加元素头插法:将右边固定,左边头部新增元素。尾插法:将左边固定,右边头部新增元素。2.应用场景。实际应用LRU ,Java中的 「 Mybatis 」,iOS中的 「YYCache」与「Lottie」。链表实现LRU:如果缓存在链表中,遍历得到该数据所在的结点,并将其从原来的位置删除,通过头插法插到链头。如果没缓存,再判断...

2019-05-06 20:40:29 175

转载 转载-flexbox布局口诀(图文)

参考来源flex-directionflex-wapjustify-contentalign-itemsalign-content

2019-05-04 17:57:37 221

iOS即时通讯Demo

iOS即时通讯Demo

2017-04-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除