自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (4)
  • 收藏
  • 关注

原创 Flutter 透明渐变 AppBar

最近要用 Flutter 重构一个 Native 页面,效果如下:随着页面滑动,圆形按钮逐渐消失,返回按钮逐渐呈现,同时AppBar的透明度在整个过程中,是随着滑动距离线性变化的,而按钮的变化分为两段:圆形按钮逐渐消失,返回按钮逐渐呈现,整个过程可逆。接下来介绍实现过程。1.整体结构设计通过观察可知,listView 可以在 AppBar 底部滑动,常规的 Scaffold widget 无法满足这个需求,而 Stack widget 可以实现组件的叠加,在这里通过 Stack 作为页面的 roo

2020-08-20 16:50:12 104

原创 如何精确计算文本所占的行数

如何精确计算文本所占的行数在 iOS 开发过程中,需要计算一段文字所占的行数,试了几种方式都很难准确计算。通过coreText 框架,去精确计算一段文本所占的行数。- (NSArray *)getLinesArrayOfStringInLabel:(NSString *)string font:(UIFont *)font andLableWidth:(CGFloat)lableW...

2020-06-23 12:34:00 223

原创 Waiting for another flutter command to release the startup lock...

遇到这个问题,随手百度一下大概率会得到以下答案:进入到flutter sdk目录中,然后找到bin/cache/lockfile文件,删除它即可。删除之后再运行flutter packages get就已经解决了。根据提示的字面意思,猜测是Dart 进程开启的过多,其中有Dart 进程未释放 startup lock资源。此时只需要打开任务管理器或者 Mac的活动监视器,搜索 dart,关闭所有dart进程即可。并不需要删除任何文件。发自 CNBlog ...

2020-06-18 10:16:02 78

原创 iOS 支付宝支付 微信支付SDK接口不统一? 盘他!

  开发过支付宝、微信支付的同学都知道,微信的支付 API 设计感觉是 Java 开发工程师写的,远不如支付宝 SDK 的接口设计用起来顺手。在这里,统一封装微信支付和支付宝支付的API,使两种支付方式对外提供一致的调用接口。   首先我们来看支付宝支付SDK的API是怎么设计的:/** * 支付接口 * * @param orderStr 支付订单信息字串 * @...

2019-10-10 19:41:21 40

原创 支付宝支付 微信支付SDK接口不统一? 盘他!

  开发过支付宝、微信支付的同学都知道,微信的支付 API 设计感觉是 Java 开发工程师写的,远不如支付宝 SDK 的接口设计用起来顺手。在这里,统一封装微信支付和支付宝支付的API,使两种支付方式对外提供一致的调用接口。   首先我们来看支付宝支付SDK的API是怎么设计的:/** * 支付接口 * * @param orderStr 支付订单信息字串...

2019-10-10 19:40:00 78

原创 How do I fix "selector not recognized" runtime exception

Q: How do I fix “selector not recognized” runtime exceptions when trying to use category methods from a static library?如何解决 在 runtime 环境中尝试调用静态库中分类的方法时,报 “selector not recognized” 异常?  今天在浏览 YYKi...

2019-09-25 17:10:52 65

原创 Building Objective-C static libraries with categories

Q: How do I fix "selector not recognized" runtime exceptions when trying to use category methods from a static library?如何解决 在 runtime 环境中尝试调用静态库中分类的方法时,报 "selector not recognized" 异常?  今天在浏览 ...

2019-09-25 17:05:00 35

原创 iOS 工程由shell脚本配置一套代码生成多个APP

  APP开发过程中,往往需要在多个网络环境或配置中进行切换,以获取不同配置的APP,甚至有时需要用一套代码经过简单的配置生成不同的APP。而手动配置费时费力,且容易出错。这里介绍用脚本工具,去生成不同配置的APP工程。1. 需求分析在配置工程中我们需要事先知道有哪些配置项:   1. APP 启动图、图标等资源文件。   2. APP...

2019-09-23 10:19:59 265

原创 电商 APP 下单页(俗称车2) 业务流程概要设计

电商 APP 下单页(俗称车2) 业务流程概要设计 购物车是电商APP的一个关键功能点,一般购物车包含 3 个页面,分别是:1.购物车的商品列表页2.商品下单页3.订单付款页面4.订单付款成功页面由于现有购物车逻辑相对混乱,这里重新整理一下商品下单页的业务流程设计1.生成订单这里在业务层面把订单的生命周期划分为4个阶段,分别是:...

2019-03-27 10:15:00 119

原创 创建 个人 pod

创建 个人 pod 创建一个自己的 pod 大致需要以下步骤创建git repository编辑.podspec创建LICENSE(许可证/授权)文件标记 tag验证注册CocoaPods发布搜索验证1.代码提交到github平台在 git 平台创建自己的 repository,例如 ‘AGNetworking’...

2019-03-22 11:43:00 103

原创 iOS 数据安全、数据加密传输

iOS 数据安全、数据加密传输 近期接到一个新需求:APP企业版需要接入热更新功能。热更新需要下发补丁脚本, 脚本下发过程中需要保证脚本传输安全,且需要避免中间人攻击。需要用到数据加密传输方面的知识,以下是我设计的加密解密流程:  0. 将脚本 base64 编码,得到编码后的文本 encodedScript;   1. 将 encodedScript 使用...

2019-02-20 16:23:00 131

原创 GCD 多线程技术

GCD 多线程技术  Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,DCD就能生成必要的线程并计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可以统一管理,也可以执行任务,这样就比以前的线程...

2018-09-17 18:02:00 24

原创 获取 iOS APP 内存占用的大小

获取 iOS APP 内存占用的大小 当我们想去获取 iOS 应用的占用内存时,通常我们能找到的方法是这样的,用 resident_size: #import <mach/mach.h>- (int64_t)memoryUsage { int64_t memoryUsageInByte = 0; struct task_basi...

2018-09-17 14:26:00 488

原创 使用 runtime 实现字符串转方法,并传递参数

使用 runtime 实现字符串转方法,并传递参数 利用runtime的动态机制实现字符串转方法并传递参数使用 SEL 关键字引用方法声明,使用 methodForSelector 寻找方法实现,使用函数指针调用方法。 1 - (void)actionResponse:(NSString *)action withObject:(id)argument {...

2018-09-17 13:51:00 53

原创 OC字符串处理

OC字符串处理 接到一个需求, 现有多个品牌的商品,使用字符串保存已选中的品牌,使用','隔开,可以反选。 分析问题可知:1. 字符串由多个品牌名字组成,由 ',' 隔开。2.如果选中的品牌不在字符串内,则拼接到字符串。3.如果选中的品牌在字符串内,移除这个品牌。子字符串在字符串内的位置有 3 种情况:在1.头部 2.在内部 3.在尾部,如果子字符 在...

2018-09-17 13:43:00 45

原创 用 map 表达互斥逻辑

用 map 表达互斥逻辑 在这个开发周期遇到这样一个需求:管理员可以给子账号配置权限,有些权限存在互斥不可同时勾选,比如审核员和代采、审核和采购员不可同时勾选 之前同事实现的方式如下:这样每添加一个互斥关系就要遍历一次,低效且代码繁琐。 // 审核员和代采、审核和采购员不可同时勾选 if ([tag isEqualToString:@"审核...

2018-09-17 13:10:00 74

原创 iOS之LLDB调试器

iOS之LLDB调试器 LLDB被定位为下一代的高性能调试器,默认内置于Xcode IDE内,支持在PC、iOS设备以及模拟器上调试C、Objective-C和C++。关于LLDB的官方介绍:LLDB常用命令:1. po 打印对象的 description 信息, 或者直接在调试窗口打印一个基本类型变量的值 2. expr  是expression的简...

2018-09-17 12:57:00 78

原创 iOS 线程安全

iOS 线程安全 简介:  操作系统在进行多线程调度的时候,为了保证多线程安全引入了锁的机制,以实现指定代码或资源在某时间内只可以被有限个线程访问。这里主要介绍iOS开发中,使用Objective-C开发所用到的几种锁的用法。 1      iOS开发中常用的几种锁1.1       OSSpinLock 自旋锁1.2       pthread_mute...

2018-03-01 11:55:00 71

原创 iOS 线程安全 锁

简介:操作系统在进行多线程调度的时候,为了保证多线程安全引入了锁的机制,以实现指定代码或资源在某时间内只可以被有限个线程访问。这里主要介绍iOS开发中,使用Objective-C开发所用到的几种锁的用法。1 iOS开发中常用的几种锁1.1 OSSpinLock 自旋锁1.2 pthread_mutex1.3 pthre...

2018-03-01 11:55:00 3

原创 OC实现 单向链表

OC实现 单向链表 需要实现一个消息队列,队列具有 FIFO 特点,即先入先出,在这里采用单向链表实现队列逻辑。本次要实现的队列要求:1. 节点可以存放任意类型数据2. 线程安全 简单说明一下:1. 创建CFNode类,用作节点,其data属性和next属性都是 atomic,即只能单线程访问属性。2. 创建CFList类,用以push节点和pop节点...

2018-02-27 14:26:00 127

原创 iOS读取info.plist中的值

iOS读取info.plist中的值 在app运行的时候,需要读取info.plist中的信息,用以下代码可获取整个info.plist的信息[[NSBundle mainBundle] infoDictionary]以下为根据 key 值去取 URLTypes 里面对应的值:+ (NSString *)URLSchemesForkey:(NSStrin...

2018-01-26 16:43:00 1213

原创 SQLite 如何取出特定部分数据

SQLite 如何取出特定部分数据 如果我要取11-20的Students表的数据,则为: Select * From Students  Limit 9 Offset 10;表示从Students  表获取数据,跳过10行,取9行 。也可以这样写 select * from Students limit 10,9 和上面的的效果一样。 通用公试:  sql =...

2016-06-16 17:45:00 3242

原创 UIView常用的一些方法setNeedsDisplay和setNeedsLayout

UIView常用的一些方法setNeedsDisplay和setNeedsLayout 1,UIView的setNeedsDisplay和setNeedsLayout方法  首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到  UIGraphicsGetCurrentContext,就可以画画了。而set...

2016-06-07 10:45:00 16

原创 xCode常用快捷键

xCode常用快捷键  cmd + r //运行command + option + =    //storyboard约束调整  1、一次性修改一个scope里的变量名:点击该变量,出现下划虚线,然后command+control+E激活所有相同变量,然后进行修改。2、删除一个词:option+delete    删除一句话:com...

2016-06-07 10:31:00 42

原创 ios之runtime

ios之runtime 简介OC是从C语言发展过来的,之所以能变为动态语言是因为runtime机制,runtime就是OC在运行时的一些机制;OC的runtime最重要的是消息机制。在编译阶段,OC可以调用任意函数,即时这个函数还未实现,只要声明过就不会报错;而C语言在编译阶段调用未实现的函数会报错; runtime作用:1.发送...

2016-06-05 21:08:00 25

原创 Objective-C 中的 assign, copy,retain,strong,weak 详解

Objective-C 中的 assign, copy,retain,strong,weak 详解   在IOS开发中,经常会使用   @property(nonatomic,copy)NSString * name;   语句来快速设置set get 方法,在此依次说明atomic 、nonatomic、copy 、retain的作用         at...

2015-05-09 22:25:00 102

原创 OC之block 和协议

OC之block 和协议  一、BOLCK(一)简介BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行。BOLCK和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样。标识符 ^(二)基本使用(1)定义BLOCK变量Int (^Su...

2015-04-09 22:19:00 37

原创 位运算

位运算  真假判断:不是0就是真三目运算:a>10?printf(“大于10\n”):printf(“小于10\n”);printf()有返回值   ':'两边须有返回值 进制定义八进制 int num=012;print(“%o\n”,num); 占位符o 0xint a=5;四个字节,每个字节有8位;00000000 0000000...

2015-03-11 20:47:00 25

原创 第一天

第一天 today ,i start my first project command+b/r编译、运行注释反注释 command +/float类型精确到后6到7位数字double类型精确到15 16位数字float a = 12.3f类型转换 精度损失,自动转型long —>float可以,float数据存储方式有多种,可存储指...

2015-03-11 09:24:00 14

matlab 常用信号产生

基本数字信号,冲击信号,三角信号等matlab代码

2013-11-06

高质量C++编程指南

c++代码指南,相关专业知识介绍,本书第一章至第六章主要论述C++/C 编程风格。难度不高,但是细节比较多。别小 看了,提高质量就是要从这些点点滴滴做起。

2013-11-06

马遍历棋盘

acm算法源代码,马遍历棋盘问题,有注释,复杂度较低。

2013-11-06

单片机数字时钟代码

stc89c51/52单片机数字时钟源代码,嵌入式,带有蜂鸣器等功能

2013-11-06

空空如也

空空如也

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

TA关注的人 TA的粉丝

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