Ekulelu's Blog


  • Home

  • Categories

  • Archives
Ekulelu's Blog

iOS安全开发笔记0——工具安装

Posted on 2018-05-06 | In iOS安全开发笔记 | | Visitors

iOS安全开发笔记0——工具安装

1、将终端换成iTerm

下载地址 https://www.iterm2.com/downloads.html

安装zsh,在终端输入命令

1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

使用下面的命令启用zsh

1
chsh -s /bin/zsh

打开 ~/.zshrc文件,将主题改为agnoster.

1
ZSH_THEME="agnoster"
Read more »
Ekulelu's Blog

iOS安全开发笔记1——常用的lldb命令

Posted on 2018-05-06 | In iOS安全开发笔记 | | Visitors

iOS安全开发笔记1——常用的lldb命令

lldb,一个强大的debug调试工具,这里记录一下常用的命令。下面的命令都可以使用 help + 命令+ 子命令 来查看帮助菜单。

lldb调试的断点是可以在 ~/.lldbinit 里面写入加载的脚本,我们可以将一些通用的命令写进去。

expression

expression这个命令应该是最常用的,可以方便地进行打印各种对象信息或者执行代码。一般我们用到的都是它的简写:p 、 exp 和 po。

p 或者 exp 后面可以直接接OC的代码

po 后面则是接需要打印的对象

breakpoint

这个可以用来设置和管理断点,就像在代码区左边点一下一样。常用的命令有

  1. 设置断点,这个方法会将UIViewController的touchesBegan:withEvent:设置一个断点

    1
    breakpoint set -n "-[UIViewController touchesBegan:withEvent:]"

    后面可以带几个-n参数。注意的是这样设置的断点会归为一个组,里面的断点是这个组的第几个断点,比如下面语句会生成断点组1,里面有1.1的断点和1.2的断点。

    1
    breakpoint set -n "-[UIViewController touchesBegan:withEvent:]" -n "-[UIViewController touchesEnded:withEvent:]"

    带不同参数的时候

Read more »
Ekulelu's Blog

iOS基于CoreGraphics的粗细可变且半透明笔画

Posted on 2017-10-30 | In iOS CoreGraphics画图 | | Visitors

在《iOS基于CoreGraphics的可变粗细的划线》的wiki上,已经介绍了现在使用CoreGraphics绘制可变粗细线条的方法,也就是每两个点就调用一次stroke方法绘制一条线段。这个在不透明的情况下没有问题,最多就是性能差点。但是你把绘制的颜色调节成透明的时候,你会发现一个很恶心的现象,一条线段变成了一节一节的。就像下图那样

Read more »
Ekulelu's Blog

iOS基于CoreGraphics的可变粗细的划线

Posted on 2017-10-30 | In iOS CoreGraphics画图 | | Visitors

之前的文章有提及过现在Drawing里面使用的画图方式:基于系统的CoreGraphics框架的CGContextAddLineToPoint来进行绘制,但是这些都有个问题,你会发现你调用stroke之前,只能设定唯一的宽度,当你调用stroke的时候,该path里面的点都会以这个宽度进行绘制。为了实现宽度可变,原生接口只能采用一个很极端的方式:每两个点就调用一次stroke方法,也就是说每两个点组成一个path,然后改变不同的path的宽度就可以绘制出一条可变宽度的线段。
代码如下:

Read more »
Ekulelu's Blog

iOS线段绘制

Posted on 2017-10-30 | In iOS CoreGraphics画图 | | Visitors

1、简单粗暴的drawInRect (Android的OnDraw)

在iOS平台,drawInRect是重绘一个控件的方法,在这里可以拿到这个控件的一个上下文对象,可以往这个上下文对象里面画线或者其他一些简单图形。所以最开始做的简单方法就是在onTouch事件中收集到点的数据,然后在drawInRect方法里面绘制每一帧的时候,从第0个点重新绘制到最新的点。

Read more »
Ekulelu's Blog

iOS画图轨迹圆滑处理

Posted on 2017-10-30 | In iOS CoreGraphics画图 | | Visitors

用户在画图过程中,系统从屏幕上获取到的是离散的点。而且这个点的获取是有一个最高频率的,当用户在屏幕上滑动速度很快的时候,获取到的两个点就会距离较远。

Read more »
Ekulelu's Blog

iOS视频制作

Posted on 2017-10-30 | In iOS开发技术杂谈 | | Visitors

#
这里说的视频制作并不是从摄像头录制视频,而是如何将一帧一帧的图片合成一个视频文件。这里我们所使用到的类是AVAssetWriter,它的使用方式比较固定,且代码也比较多。
首先是设定好AVAssetWriter

Read more »
Ekulelu's Blog

UIDocument简介

Posted on 2017-08-12 | In iOS开发技术杂谈 | | Visitors

UIDocument是iOS的一个负责文件读取和存储的类,对于文档类的应用,使用这个类可以省去存储和读取时候线程的一些麻烦事情。尤其是和NSUndoManager配合之后,可以做到自动存储,很方便。

UIDocument里面只是一套存储和读取的逻辑框架,至于怎么读取和怎么存储,都是需要你自己去定义的。所以,一般使用UIDocument的做法就是继承它,然后实现它存储和读取相关的方法。
首先你需要创建它,这个url指定的可以是一个文件或文件夹

Read more »
Ekulelu's Blog

Swift4学习笔记5——流程控制语句

Posted on 2017-06-14 | In 学习Swift4(Learn Swift4) | | Visitors

if else语句

if语句和其他语言中的使用是一样的,只是语法稍有不同。首先是不用括号,其次是即使是if后面只有一条语句,也必须加上大括号。

1
2
3
4
5
6
var array1 = ["a","b","c"]
if array1.count > 1 {
print("array1 is not empty") //这句会打印出来
} else {
print("array1 is empty")
}

Read more »
Ekulelu's Blog

学Swift4之4——集合类型

Posted on 2017-06-14 | In 学习Swift4(Learn Swift4) | | Visitors

集合类分为array、dictionary、set。每个集合都有一个isEmpty属性来判断这个集合是否为空

Array

创建array的四种方法

1
2
3
4
5
var array1 = ["a","b","c"] //包含 a b c 三个字符串
var array2 = Array<Int>() //空array,这里一定要指明元素类型
var array3 = [String]() //空array
var array4 = Array(repeating:2.4, count:3) //包含3个double变量,值都为1.3
var array5 = [Double](repeating:2.4, count:3) //包含3个double变量,值都为1.3

Read more »
123
Ekulelu

Ekulelu

一緒に世界の果てまでへ

28 posts
5 categories
© 2018 Ekulelu
Powered by Hexo
Theme - NexT.Pisces