Lemon's blog

所有的东西你都要坚持到最后才知道值不值得


  • 家

  • 归档

  • 分类

  • 标签

  • 搜索

网络层设计方案以及去Model化实践

发表于 2018-08-02 | 分类于 iOS 开发 |
字数统计: 1,707 | 阅读时长 ≈ 7

前言

偶然在网上看到casa的网络层设计方案,在以前的iOS开发中,用的最多的就是集约型的网络请求+去Model的形式,然而在看完这篇文章之后我觉得好像发现了新大陆,原来还可以这么玩。

阅读全文 »

快行指针

发表于 2018-08-01 | 分类于 常见算法 |
字数统计: 576 | 阅读时长 ≈ 3

快行指针的定义就是有两个指针访问链表,但是一个指针的速度比另外一个快,或者说一个指针在前,一个在后。

根据这个特性我们可以用来检测一个链表中是否有环。

假设:一个指针的速度是另外一个指针的两倍,它们同时开始访问同一个链表,如果链表有环的情况下,那么快行指针总会追上慢行指针,也就是总有一个时刻快行指针和慢行指针指向同一个节点,当慢行指针跑一圈的时候,快行指针此时刚好跑了两圈。

阅读全文 »

dummy节点和尾巴插法

发表于 2018-07-31 | 分类于 常见算法 |
字数统计: 338 | 阅读时长 ≈ 2

给出一个链表和一个数X,要求将链表中所有小于X的值放到左边,等于或者大于X的值放到右边,并且原链表的节点顺序不变。

示例:
假设: 1->7->3->5->2->8->4,给定x=4
那么变换后的节点为: 1->3->2->7->5->8->4

阅读全文 »

iOS 组件化实践《二》基于现有项目拆分组件化实践

发表于 2018-07-31 | 分类于 iOS 开发 |
字数统计: 1,528 | 阅读时长 ≈ 6

0x01 前言

在第一篇介绍中已经介绍了如果发布一个私有pod,下面将会介绍如何基于一个现有的项目拆分成组件化形式的项目。
假设我们现有的项目是有一个AViewController,还有一个BViewController,目前的功能是点击rootViewController页面的按钮会push到AviewController,然后点击AviewController的一个按钮会跳转到BViewController。这里是未拆分的demo

阅读全文 »

无重复字符的最长子串

发表于 2018-07-31 | 分类于 常见算法 |
字数统计: 433 | 阅读时长 ≈ 2

无重复字符的最长子串

给定一个字符串,找出不含有重复字符的最长子串的长度。

示例:

给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。

给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。

给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串。

阅读全文 »

非空链表相加

发表于 2018-07-30 | 分类于 常见算法 |
字数统计: 516 | 阅读时长 ≈ 2

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

思路:

  1. 只要两个非空链表中的其中一个链表不为空的时候就循环便利两个链表
  2. 如果其中一个链表为空而另外一个链表不为空,那么为空的那个链表的值就为0
  3. 用一个carry位来表示是否有进位,0代表无进位,1代表有进位,因为链表中都是个位数,所以最大进位也只能为1,初始化进位为0
  4. 用x,y来表示当前两个链表的值,sum = x+y+carry为新链表的值,但是有可能有进位,所以新的carry = sum / 10,当前节点位的值为sum = sum %10。
    阅读全文 »

iOS 组件化实践《一》创建私有pod

发表于 2018-07-30 | 分类于 iOS 开发 |
字数统计: 2,466 | 阅读时长 ≈ 11

0x01 前言

本次组件化实践的方式来自于casaty组件化方案,该方案是基于target-action模式和Mediator模式,通过Mediator利用runtime的机制来调用对应的target-action。并且在上层通过category的方式暴露对外调用的接口,这样调用者在调用的时候就知道需要传递哪些参数。

阅读全文 »

两数之和

发表于 2018-07-29 | 分类于 常见算法 |
字数统计: 362 | 阅读时长 ≈ 1

两数之和

给定一个数组和一个目标数,判断数组中是否有两个数的和等于该目标数,如果存在则输出它们在数组中的序号。

解法1:第一眼看到上述题目我们第一时间的反应应该是通过两个循环遍历来找出它们的序号。第一个循环找出一个数X,然后用目标数减去该数值X得到第二个数Y,然后第二次循环找出有没有与Y相等的数值。这样时间的复杂度是O(n²)。

阅读全文 »

字符串反转算法

发表于 2018-07-29 | 分类于 常见算法 |
字数统计: 202 | 阅读时长 ≈ 1

字符串反转

给定一个字符串,要求按照其按照单词的顺序进行反转
即: oc is the best language
反转后的字符串应该为: language is the bast oc

思路:我们首先可以对给定的字符串进行普通的反转,然后将反转后的字符串进行切割成单词只有再反转会正常的单词。swift实现如下:

阅读全文 »

iOS防止被逆向调试

发表于 2018-07-25 | 分类于 iOS 开发 |
字数统计: 1,052 | 阅读时长 ≈ 5

0x01

反调试主要分为两种,第一种阻止调试器附加,第二种是检测是否有调试器存在

阅读全文 »
12345
lemon

lemon

iOS Developer | 拥抱变化 | 🍋😊

50 日志
5 分类
41 标签
RSS
GitHub E-Mail
© 2019 lemon