7 想名真难

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

sourceTree在其他分支只合并某次提交

1.在sourceTree中找到需要提交的分支, 就是你想要修改的分支2.在显示提交信息中,选择所有分支,这样子就会出现所有分支的修改信息。3.找到需要合并的某次commit,点击,右键会出现弹框4.选择“遴选”5.点击确定按钮6.会看到这个分支下面刚才选中的某次修改内容,点击推送提交即可。这样子就完成只对某次或者不连续修改内容的提交。cherry-pick使用该命令可以将任意的commit通过其commit号将其合并到你想要的分支上。打开终端,在对应的.

2020-10-23 11:01:35

iOS动画-CAAnimation使用详解

理解了隐式动画后,显式动画就更加通俗易懂了。区别于隐式动画的特点,显式动画就是需要我们明确指定类型、时间等参数来实现效果的动画。除此之外,我们也可以创建非线性动画,比如沿着任意一条曲线运动等;我们平时最常用的也是显式动画,不仅系统为我们的视图提供了UIViewAnimationWithBlock的动画封装,而且我们在熟悉了Core Animation的动画属性后也可以很方便的设置显式动画;本篇主要内容:1.iOS动画的分类2.CAMediaTiming协议3.CAAnimation基类4.CA

2020-10-22 12:03:35

iOS动画-CALayer隐式动画原理与特性

Core Animation的一个非常显著的特性是就是实现动画,而且它支持隐式动画和显式动画两种形式,本篇我们主要从隐式动画说起;本篇主要内容:1.何为隐式动画2.隐式动画原理-事务与图层行为3.隐式动画的关闭与显示4.隐式动画自定义图层行为一、何为隐式动画?Core Animation是基于这样的一个假设:屏幕上的任何东西都可以(或者可能)做动画,它并不需要手动打开,反而是需要我们明确的关闭,否则动画会一直存在。所谓隐式动画,其实是指我们可以在不设定任何动画类型的情况下,仅仅改变CAL

2020-10-22 11:08:55

iOS动画-CALayer布局属性详解

本篇主要内容:1.Frame与Bounds的区别2.中心点(position)与锚点(anchorPoint)3.视图与图层的坐标系一、Frame与Bounds的区别我们已经知道UIView的很多布局属性其实都来自于图层;UIView的布局属性包括:frame、bouns、center,分别对应了CALayer中frame、bounds、position。为了能清楚区分,图层用了position,视图用了center,但它们都代表了同样的值。UIView属性 CALayer属性

2020-10-22 10:43:43

iOS动画-CALayer寄宿图与绘制原理

核心动画Core Animation,其实是由Layer Kit这样一个名字演变而来。它实际上是一个复合引擎,可以将存储在图层树体系中的不同独立图层,尽可能快地组合成不同的可视内容呈现于屏幕上;所以做动画只是Core Animation的特性之一;Core Animation直接作用于CALayer上,而图层树又是形成了UIKit以及我们在iOS应用程序所能在屏幕上看见一切的基础。因此,在讨论动画之前,我们有必要对于图层这一概念进行深入的理解。本篇主要内容:1.理解视图与图层2.CALyer寄宿

2020-10-22 10:42:16

CABasicAnimation 退后台动画暂停

这回我们来总结一下CABasicAnimation使用中的一些细节的处理问题,避免一些比较蛋疼的事情发生,显得无从下手:一般的动画,我们这样写:///开始旋转 - (void)beginRotation{ CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; anim.toValue = @(2 * M_PI); anim.duration = 20;

2020-10-22 10:21:37

iOS 动画过程中view响应点击事件

对Core Animation来说,不管是显式动画还是隐式动画,对其设置frame都是立即设置的,比如说给一个UIView做移动动画,虽然看起来frame在持续改变,但其实它的frame已经是最终值了,这种情况下,哪怕这个UIView是UIButton的实例,其触发touch事件的范围还是最终frame的地方。比如一个Button的frame是(0,0,100,100),要把它从0,0移动到200,200,在这种情况下:1.如果你使用的是显式动画(CAKeyframeAnimation和CABasicA

2020-10-03 22:54:14

统计数字在排序数组中出现的次数

统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0题目很简单, 做起来也确实容易, 但是面试官肯定不是想要暴力法的, 而且思路很多, 要是能说出来几种不同的思路, 绝对会让人眼前一亮的.1. 暴力法, 从开始遍历, 如果相等, 就把result+1, 直到结束. 最原始的暴力法, 有一个小地方可以优化, 就是结..

2020-10-02 23:03:48

iOS触摸屏幕后发生了什么?触摸事件全家桶

好奇触摸事件是如何从屏幕转移到APP内的?困惑于Cell怎么突然不能点击了?纠结于如何实现这个奇葩响应需求?亦或是已经被响应链、手势、target-action这一系列响应触摸事件的方式折腾到不会打Hello World?现在 是时候带你上分了~ (强行YY完毕)本文主要讲解iOS触摸事件的一系列机制,涉及的问题大致包括:触摸事件由触屏生成后如何传递到当前应用? 应用接收触摸事件后如何寻找最佳响应者?实现原理? 触摸事件如何沿着响应链流动? 响应链、手势识别器、UIControl之.

2020-09-22 10:32:51

回溯法, 数组的子集

给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]链接:https://leetcode-cn.com/problems/subsets在快手的面试中遇到了这个题, 知道需要用回溯法枚举出所有的场景, 但是在写的过程中, 还是有点卡壳.先把最开始的思路写上...

2020-09-21 19:36:48

Git中的merge和rebase

merge和rebasegit的merge和rebase都是用来合并分支的, 将一个分支的更改并入另一个分支。git merge:将两个分支,合并提交为一个新提交,并且新提交有2个parent。git rebase:会取消分支中的每个提交,并把他们临时存放,然后把当前分支更新到最新的origin分支,最后再吧所有提交应用到分支上。主要说的是两者在实际操作中的区别。什么是分支分支就是便于多人在同一项目中的协作开发。比方说:每个人开发不同的功能,在各自的分支开发过程中互不影响,完成后

2020-09-20 11:45:08

数组接雨水

给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6哈哈哈, 不少人第一眼看到这个都是懵的, 好像完全没有学过的知识点可以指出思路. 好在计算机就是计算能力强, 用暴力法处理试试.按照题目要求, 一个位置i能积水, 那么左边肯定有比he.

2020-09-19 16:29:04

Tagged Pointer分析

在objc4源码中,我们经常会在函数中看到Tagged Pointer。Tagged Pointer究竟是何方神圣?从64位开始,iOS引入了Tagged Pointer技术,用于优化小对象(NSString,NSNumber,NSDate)的存储。主要为了解决两个问题:内存资源浪费,堆区需要额外的开辟空间 访问效率,每次set/get都需要访问堆区,浪费时间特点:专门用来存储小对象,比如NSString,NSNumber,NSDate Tagged Pointer指针的值不再是堆区地

2020-09-18 11:29:18

数组中的重复元素, 在距离小于k内是否有相同元素

给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums [i] = nums [j],并且 i 和 j的差的 绝对值 至多为 k。输入: nums = [1,2,3,1], k = 3输出: true输入: nums = [1,0,1,1], k = 1输出: true输入: nums = [1,2,3,1,2,3], k = 2输出: falsehttps://leetcode-cn.com/problems/contains-duplicat...

2020-09-15 19:18:25

数组中的重复元素, 最终boss

在整数数组 nums 中,是否存在两个下标 i 和 j,使得nums [i] 和nums [j]的差的绝对值小于等于 t ,且满足 i 和 j 的差的绝对值也小于等于 k。如果存在则返回 true,不存在返回 false。输入: nums = [1,2,3,1], k = 3, t = 0输出: true输入: nums = [1,0,1,1], k = 1, t = 2输出: true输入: nums = [1,5,9,1,5,9], k = 2, t = 3输出: false...

2020-09-15 18:07:23

字符串相乘

给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。输入: num1 = "2", num2 = "3"输出: "6"输入: num1 = "123", num2 = "456"输出: "56088"https://leetcode-cn.com/problems/multiply-stringsclass Solution { func multiply(_ num1: Str...

2020-09-14 16:18:35

ios 调试工具FLEX

FLEX(Flipboard Explorer)是一套app内的开发调试工具,主要应用于iOS开发, 但是不仅仅是自己的APP, 也可以查看第三方APP的信息。当提交时,FLEX在你的app上方显示一个工具栏,然后在这个窗口中实时预览。利用这个工具栏,你可以查看和修改运行的app中几乎任何一个状态。FLEX可以给你调试的超级体验:在层级中检查和修改视图; 可查看任意对象的属性和变量,并支持动态调整; 动态调用实例和类方法; 支持通过扫描堆来访问活动对象; 可在应用沙盒中查看文件系统; 直接

2020-09-09 19:39:16

iOS内存对齐+calloc分析

在了解内存对齐之前先了解一下各数据类型在内存中的大小,目前我们比较常用的是64位系统,所以我们的研究对象统一采用64位的大小作为参考。一. 如何获取内存的大小获取NSObject对象的内存大小,需要用到以下几个函数:1.class_getInstanceSize 2.malloc_size 3.sizeOf 我们先来一段代码,然后调用上面的几函数,看一下结果#import <malloc/malloc.h>int main(int argc, const char

2020-09-08 09:55:48

超级回文数

如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数。现在,给定两个正整数 L 和 R (以字符串形式表示),返回包含在范围 [L, R] 中的超级回文数的数目。https://leetcode-cn.com/problems/super-palindromes/回文数: 就是正序读和反序读是同一个数字, 比如121, 正序是"121", 反序还是"121", 这样就是回文数.输入:L = "4", R = "1000"输出:4解释:4,9,1...

2020-09-07 12:45:23

循环引用检测工具FBRetainCycleDetector

FBRetainCycleDetector用以检测循环引用,可以检测NSObject的循环引用、关联对象(Associated Object)的循环引用、block的循环引用。一句话描述原理: 把可疑的对象告诉FBRetainCycleDetector,然后FBRetainCycleDetector会查找可疑对象的所有strong属性, 关联对象, block,构成一个最大长度为10的有向图, 按照深度优先遍历看看是否存在环, 如果有环说明存在循环应用,并把所存在的引用循环中各对象和引用在终端进行打印.

2020-08-31 16:29:29

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。