自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ethan_LG的专栏

不骄,不躁,不作,正能量输出

原创 程序员如何精确评估开发时间?

一个程序员能否精确评估开发时间,是一件非常重要的事情。如果你掌握了这项技能,你在别人的眼里就会是这样: 靠谱 经验十足 对需求很了解 延期风险小 合格的软件工程师 正规军,不是野路子 评估开发时间的重要性 首先,在一个项目中,所有的环节都是承上启下的,上一个环节结束的时间节...

2018-11-10 22:31:54 6056 1

原创 react-native技术的优劣

前言 从2017年初开始到现在,使用React-Native做项目已经一年了。我们做的是一款IM软件,嵌入在一个手机游戏平台的工程内部。之所以要采用react-native(后文简称RN)框架重构它,是因为现在游戏大厅上的所有游戏都是热更新的,为了也能让这个IM软件实现实时更新,减少IPA升级的...

2017-08-23 16:43:00 38271 12

翻译 React Context介绍和使用

目录我是前言为什么要用(Why)使用方法(How)什么情况下使用(When) 原文链接:https://www.robinwieruch.de/react-context 我是前言 React Context是个很强悍的功能。如果你的应用在逐步增大,试试它准备错。许多著名的第三方库也在使用它,例如...

2019-12-12 18:47:55 96 0

原创 Xcode升级11.1后 altool报错

升级Xcode之后,用Jenkins打包上传工程,最后一步上传IPA的时候报错: altool: command not found 我用的是altool工具,命令: altool --upload-app -f $"path" stackOverflow和官网...

2019-10-12 17:25:27 910 0

翻译 JavaScript数组删除元素的10种方法

目录1. 删除一个尾部元素2. 删除第一个元素3. 删除一个或多个元素4. 删除指定元素5. 条件过滤删除6. 使用Lodash第三方库进行删除操作7. 自己封装一个删除指定元素的函数9. 使用Delete Operator进行显式删除10. 清空重置数组总结 1. 删除一个尾部元素 通过改变数组...

2019-09-06 16:58:07 175 0

原创 JavaScript中JSON对象深拷贝的5种方法

目录应用场景方法一方法二方法三方法四参考链接 应用场景 JavaScript中,把对象objA赋值给objB之后,改变objB的值,objA会跟着改变。这是因为默认执行浅拷贝,也就是在内存中只复制了一个指针给了objB,内存中的数据本身并没有被复制。 如果我们需要一个深拷贝,也就是执行 ob...

2019-09-06 15:15:39 63 0

原创 swift中的可选类型(?)、强制解析(!)、自动解析、可选绑定、可选链

1. 前言 对于一直用OC的iOS开发者来说,swift的可选类型可算是个新东西。刚开始接触swift的时候,(?), (!), (??)这些符号搞得我好晕,所以我觉得有必要整理出来,让更多的人不晕! 2. 可选类型 2.1 啥叫可选类型? 就是Option类型,用(?)表示。被它修饰的变...

2019-06-22 14:32:04 391 0

翻译 Apple Pay编程指南(6) -沙盒测试

文章目录 Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。 原文链接: 苹果开发文档 明天翻译,原文请看链接,不难。

2019-05-14 17:48:06 340 0

翻译 Apple Pay编程指南(5) - 处理付款结果

文章目录 Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。 原文链接: 苹果开发文档 处理付款结果分为以下几个步骤: 将支付信息连同处理订单所需的其他信息发送到服务器 验证支付数据的散列和签名 解密加密的支付数据 向支付处理网络提交支付数...

2019-05-14 17:47:40 200 0

翻译 Apple Pay编程指南(4) - 支付授权

文章目录通过代理方法更新你的地址和金额支付授权后会生成一个token处理完成之后再代理方法中dismiss控制器 Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。 原文链接: 苹果开发文档 支付授权过程是支付授权视图控制器及其代理之间的合作工作。支付...

2019-05-14 17:47:10 171 0

翻译 Apple Pay编程指南(3) - 创建支付请求

文章目录判断是否可以支付网页接口桥接支付请求包含的地区和货币信息支付请求包含的支付清单Shipping Method支付处理机制的支持设置运输和计费信息设置付一段代码 Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。 原文链接: 苹果开发文档 支付请...

2019-05-14 17:46:33 218 0

翻译 Apple Pay编程指南(2) - 环境配置

文章目录注册merchant ID创建Payment Processing certificate Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。 原文链接: 苹果开发文档 merchant ID用于鉴别应用是否可以进行Apple Pay,与mer...

2019-05-14 17:45:54 322 0

翻译 Apple Pay编程指南(1) - 简介

这里写自定义目录标题前言Apple Pay说明如何测试Apple Pay交易? Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。 原文链接: 苹果开发文档 前言 Apple Pay是一种移动支付技术,它为用户在iOS应用程序、watchOS应用程序...

2019-05-14 17:45:24 301 0

原创 Font Awesome在iOS中的使用和注意事项

1. 什么是Font Awesome? 简单说,它是一套图标字体库。 在iOS中用UILabel显示图标,就不用UI设计师切图了。究其原理,实际Font Awesome就是一套字体,只是显示出来的样子不是我们常见的文字。通过Unicode去显示实际样式,和汉字显示是一样一样的。 2. Fo...

2019-04-13 11:45:10 350 0

原创 敏捷开发是个啥

「齐齐兽」公众号授权转载 原文连接:原文连接 今天来篇正经的,从软件工程的角度来聊一聊敏捷开发模式,文章分两部分: 第一部分通过举例和对标其他行业聊聊软件开发模型的发展演进。 第二部分聊聊敏捷的核心思想。 敏捷开发是互联网界比较流行的软件开发模式,产品、技术、项目管理、运营、美术和测试...

2019-03-31 11:41:01 1091 2

原创 从程序员到技术管理--这半年我经历了什么

角色转变 自从7月份加入了当前的创业公司,承担起了iOS开发和技术管理任务。说是技术管理,其实就只带了五六个人,整个公司不到20人,谈不上什么专业管理,倒更像个“催活的”。不像大公司的leader ,我更偏向于细化任务,制定明确KPI,跟踪进度。 这个角色转变,让我看到了另外一个世界。 重新...

2019-01-17 11:36:18 467 4

原创 runtime消息分发-OC方法调用原理

概述 你一定听说过“运行时是 Objective-C 的一个特色”,也经常在写方法调用。但你知道方法调用具体是个什么过程不?秉承知其所以然的优良传统,我们就花点时间来扒一扒runtime和方法调用的原理。 runtime赋予OC的动态特性 Object-C因为有了强大的runtime而成为一...

2019-01-08 19:33:39 540 0

原创 算法-Longest Common Prefix【swift4实现】

原题连接:https://leetcode.com/problems/longest-common-prefix/description/ 解决: func longestCommonPrefix(_ strs: [String]) -> String { ...

2018-12-12 15:11:34 127 0

原创 swift4-函数的函数实际参数标签和形式参数名

前言 对于初学者来说,形式参数、实际参数标签、形式参数名 是三个很绕口的名词,阅读文档的时候容易被搞晕。相信你看完本文就会彻底明了。 关系 形式参数 = 实际参数标签 + 形式参数名 即:每一个函数的 形式参数 都包含 实际参数标签 和 形式参数名。 实际参数标签:用在调用函数的时候(在...

2018-11-08 17:47:56 503 0

原创 结束北漂,回到西安

一. 为什么要回来 2013年毕业,在西安从事嵌入式开发工作一年半。2015年初,毅然决然踏上北京的征程,从此成为一枚北漂iOS程序猿。 刚去北京,一切都是新鲜的、令人激动的。薪水骤然上涨,公司阔气,行业前景一片光明,专业技能飞速上涨。我算是幸运的,没住过地下室,也没有因为缺钱省吃俭用。一度悟...

2018-11-01 18:43:50 1601 0

原创 iOS动画曲线详解(UIView Animation Curves)

前言iOS应用中比较性感的动画,一般都不是匀速的。通俗的描述有:先快后慢,先慢后快,弹簧式的,不规则运动的,等等。本文针对这几种情况进行分解,内容包括:...

2018-05-20 20:44:37 3440 0

原创 iOS面试经历感触和市场现象(2018)

开篇啰嗦 在上家公司呆了两年半,2018年春节后开始面试,惊奇地发现,世界变化好快!和两年前的面试感觉完全不同,整体来说是要求高了,底层原理、手写算法、性能优化等等是主要面试点。 但同时不得不吐槽,一些所谓的大公司,面试方法有问题,面试体验很不好。 以下是对面试的总结,以及对将要换工作的...

2018-03-19 13:22:45 4017 3

原创 iOS面试题-RunLoop

开篇 iOS面试中,runLoop,runtime,内存管理,性能优化等更底层更的问题越来越受面试官的青睐,这确实是考察一个程序员知识深度和自主钻研能力的基本手段。虽然大多数程序员在开发过程中,这些知识点用的并不多,但是掌握这些知识,会帮助你写出更优秀的代码,避免一些“莫名其妙”的坑。想成为一名...

2018-03-19 10:24:40 1229 0

原创 算法-快速排序

/* * 快速排序(C实现) 1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。 2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。 3.i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。 4.再重复执行2,3二步,直到i==j,将基准数...

2018-02-26 10:30:20 207 0

原创 算法-TwoSum

题目:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have...

2018-02-08 09:49:07 239 0

原创 算法-寻找二叉树两个结点的最低共同父节点(OC实现)

要求:正向遍历(父节点能访问到子节点,子节点不能访问父节点)1.用plist文件模拟一个二叉树:2.具体实现:- (void)viewDidLoad { [super viewDidLoad]; NSString *filePath = [[NSBundle mainBundle] pat...

2018-02-07 17:37:44 665 0

转载 ES6中Json、String、Map、Object之间的转换

转自http://blog.csdn.net/qq_32014215/article/details/68063852 /** * Created by chenjialin on 17/3/29. */ 'use strict'; import React, {Co...

2017-10-12 16:34:48 1824 0

原创 ios10.3app内好评SKStoreReviewController以及其他方式好评

App Store评分方式1. 通过openURL直接打开App Store无版本限制,可以直接跳转到评论界面。在评分页面,可以评分和评价,评论更有价值。缺点是跳转到App Store,需要登录,用户的操作场景的转换,会造成部分用户使用的困扰,可能需要花费较长的等待时间,甚至加载失败等,造成评价数...

2017-09-26 16:33:57 1324 0

原创 VSCode快捷键大全(Mac)

通用 ⇧⌘P, F1 显示控制台 ⌘P 快速打开,快速查找并进入文件 ⇧⌘N 新建窗口(不是文件) ⌘W 关闭窗口 基本编辑 ⌘X 删除整行 (不需要选中) ⌘C 复制整行 (不需要选中) ⌥↓ / ⌥↑ 上下移动整行 ⇧⌥↓ / ⇧⌥↑ 复制整行,并...

2017-07-29 18:13:43 6842 2

原创 表驱动法简易教程

表驱动法使用教程定义表驱动法是一种编程模式,它的本质是,从表里查询信息来代替逻辑语句。从一个简单例子开始假如有这么一个需求:根据月份来获得这个月的天数。用最原始的逻辑方法是这样的if (mouth == 1) { return 31; } else if (mouth == 2) { ...

2017-07-23 23:34:10 2643 0

原创 浏览器chrome调试js代码简易教程

浏览器chrome调试js代码简易教程一般的浏览器都有js调试功能,本文以chrome为例,介绍一种简易的js代码调试方法。编写一个html文件 本地新建一个.html文件,暂且命名为debug.html debug.html中编写代码如下: <body> <script...

2017-07-22 13:24:04 1325 0

原创 ReactNative获取ListView当前界面展示的row的个数

react-native中的ListView还有很多不完善,用起来真的没原生的方便,一些功能不能实现。不过,稍微变通一下,还是可以变相实现部分不能实现的功能。获取当前界面展示的row的个数ListView有个回调函数onChangeVisibleRows,在视野内可见的数据变化时调用的回调。官网如...

2017-07-12 19:49:09 1078 0

原创 JavaScript异步操作汇总

概述Javascript语言的执行环境是”单线程”(single thread)。所以异步编程对 JavaScript 语言太重要。如果没有异步编程,根本没法用,非卡死不可。本文介绍js中三种不同的异步方式,Promise, Generator, Async。通过对比三种异步方式的特点,让大家...

2017-07-09 20:20:18 1010 0

原创 js代码规范

copy一份我司的js代码规范,简单实用。

2017-07-09 20:13:24 520 0

原创 自动化专业本科学生的就业方向

我是前言 虽然不同高校的自动化专业培养重点有差异,但是众所周知,自动化算是一个万金油专业,方向很广。总体来说,自动化专业的基本上是弱电控制,软件硬件结合,也可进行强电的操作,不过很少。 对于初入大学的同学,很多人并不清楚所学专业的具体情况。甚至一些大二大三的同学也是出于迷茫状态。作为大学生,早...

2017-05-11 21:24:28 7064 17

原创 sourceTree回退撤销commit

不小心commit了一个文件,想回退,回退到commit前的状态。本文介绍用sourceTree操作。 刚刚提交了不想提交的文件,状态如图1:                                                                   图 1 现在...

2017-05-09 21:39:15 43788 1

原创 ReactNative实现emoji表情图文混排方案

前言 在IM通讯软件中,基本上都会有emoji表情功能。聊天气泡中要显示文字和emoji表情的混排(下图所示),在原生iOS开发时,可以用富文本NSAttributedString实现,安卓中用SpannableString实现。当用到React-Native来开发这个功能的时候,貌似没有直接的现...

2017-04-19 22:06:17 10072 14

原创 ReactNative-通过setState控制组件的更新和变化

前言 ReactNative内部分别使用了props, state来区分组件的属性和状态。props用来定义组件外部传进来的属性, 属于那种经过外部定义之后, 组件内部就无法改变。而state维持组件内部的状态更新和变化, 组件渲染出来后响应用户的一些操作,更新组件的一些状态。如果组件内部状态不...

2017-04-12 09:48:23 11463 0

原创 iOS强制转换横竖屏和键盘方向控制

前言     在开发中,有时候我们回到这样一种需求:从一个竖屏界面跳转到下一个横屏界面,或者反之。如果是安卓的话,就很简单,安卓系统提供这样的API,直接操作即可。但是iOS就不好办了,在iOS3.0之前,系统还有一个接口用来设置应用屏幕方向setOrientation:,但是iOS3.0之后就被...

2017-03-13 20:30:32 12135 4

翻译 OC中__kindof的用法

简介 __kindof是苹果声明的一个新特性,它是和Nullability Annotations 以及 Generics 一起在xcode7中出现的。本文将对它进行详细介绍: 使用方法 假如我们声明了如下属性: @property (nonatomic, strong) NSArray *vi...

2017-03-08 20:05:55 3859 0

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