自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

freeWayWalker的专栏

专注于技术,一点一滴积累

  • 博客(98)
  • 资源 (1)
  • 收藏
  • 关注

原创 Taro + VUE 小程序环境搭建

微信小程序 API 的 TypeScript 类型定义文件在中指定。

2023-05-26 12:32:53 1062

原创 【开发工具】iOS项目工程CI配置

提交日志检查按照语义化的提交日志规范,可以同时对 commit message 和 merge request title 做校验。语义化提交日志规范Git Semantic Commit Messages推荐使用Git Semantic Commit Messages,固定提交日志格式,有助于我们成为一个更好的开发者。格式: (): 其中 是可选的。格式说明:feat: add hat wobble^--^ ^------------^| || +-> S

2020-09-18 13:40:35 593

原创 【Xcode应用】iOS性能分析

性能分析工具腾讯PerfDog包大小设置输出Link Map文件:Xcode – Build Settings – Write Link Map File为YES编译后可在如下位置找到该文件。$(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt下载Link Map分析工具:...

2020-04-15 05:06:15 2163

原创 【Web基础】HTTP Cookie管理

HTTP Cookie & Set-Cookie 头部当服务器收到HTTP请求时,服务器可以在响应头里面添加一个Set-Cookie选项。用户代理(一般是浏览器)收到响应后通常会保存下Cookie,之后对该服务器每一次请求中都通过Cookie请求头部将Cookie信息发送给服务器。这种机制使得服务器能够在无状态的HTTP协议中维护稳定的状态信息。服务器可以在一个响应中设置多个Set-C...

2019-09-11 23:36:27 541

原创 【开发工具】CocoaPoads结合Git Submodule

问题背景:在一个Xcode项目内使用CocoaPods来集成各个模块,需要频繁改动所依赖的Pod组件。在改动Pod组件时,常用的做法是先将Podfile中指向的Pod路径改为本地路径,修改完成之后再切回远端路径。将Pod组件引入方式改为CocoaPoads结合Git Submodule的方式,可以避免频繁修改Podfile中的Pod路径。CocoaPoads结合Git Submodule好...

2019-03-13 13:12:11 1204

原创 【Xcode应用】使用Xcode调试framework

使用Xcode调试framework的方法:集成生成framework的工程集成生成framework的工程到主工程中在主工程中添加对framework的依赖从生成framework的工程下启动app编辑Scheme,指定Executable中的app添加user断点在生成framework的工程中添加断点,并Move Breakpoints To User在...

2018-11-25 14:08:26 1947

原创 【iOS逆向】iOS越狱砸壳流程

越狱安装Cydia Impactor下载越狱程序(IPA文件):iOS 9.2~9.3.3从这里下载1, iOS 10~10.3.3从这里下载[^Meridian], 砸壳iPhone砸壳准备iPhone启动Cydia,添加frida软件源(https://build.frida.re)来安装fridaMac砸壳准备Mac安装frida: sudo ...

2018-07-06 12:37:41 3943

原创 【iOS性能优化】MLeaksFinder内存泄漏检测

功能分析MLeaksFinder 是 iOS 平台的自动内存泄漏检测工具,可以在日常调试业务逻辑时自动发现并警告内存泄漏,而无需打开 instrument 等工具。它简单方便且不入侵项目逻辑,不用写任何代码即可实现ViewController,View 的内存泄露检测,也可定制检测其他类型对象的内存泄漏问题。原理当一个 ViewController 被 pop 或 dismiss 之后,我们认为该

2017-11-15 10:59:39 2321

原创 【Swift基础】Swift 4.0学习笔记

The Swift Programming Language 4.0 中文版学习笔记 11. 基础部分注释嵌套注释: /* A /* B */ /常量和变量常量和变量名可以使用Unicode字符来命名,但不能包含数学符号,箭头,保留的(或者非法的)Unicode码位,连线与制表符。也不能以数字开头。常量和变量一旦声明为确定的类型,即不能改变其存储的值的类型。同时,常量和变量不能互转。数字除非需

2017-10-29 23:08:35 647

原创 【iOS界面开发】UIWindow屏幕旋转自适应

屏幕上显示的每个视图都被包含于UIWindow对象,app内每个window之间相互独立。app接收到的事件都最先路由到合适的window对象,再由此派发到合适的视图。Windows与ViewControllers一起协作,从而实现屏幕旋转变换,完成各项任务。避免直接调用- [UIWindow addSubview:]方法来添加视图,而是通过操作UIViewController来添加视图,从而实现屏

2017-09-17 22:01:04 4441

原创 【Objective-C环境】Objective-C编译优化

一般可以将编程语言分为两种,编译语言和直译式语言。像C++,Objective C都是编译语言。编译语言在执行的时候,必须先通过编译器生成机器码,机器码可以直接在CPU上执行,所以执行效率较高。像JavaScript,Python都是直译式语言。直译式语言不需要经过编译的过程,而是在执行的时候通过一个中间的解释器将代码解释为CPU可以执行的代码。所以,较编译语言来说,直译式语言效率低一些,但是编写的

2017-08-15 12:42:02 1226

原创 【版本管理】SVN使用问题小结

无法加入版本管理的文件从分支代码合并到主干时,遇到新添加的文件夹里的文件没被纳入到svn管理,试了若干种方法无果: find ./ -name “.svn” | xargs rm -Rf svn add * –force最终解决方案: 拷贝出文件,将之从原版本管理库中删除,再重新拖进来,Adding to Working copy

2017-07-25 10:19:29 496

原创 【Mac App工具】meld merge工具安装教程

meld是非常好用的文件夹和文件比较工具,跨平台,支持命令行启动。支持两到三个文件夹或文件的相互比较,且支持版本控制下本地文件与版本库文件的比较。随着Mac系统和Python的升级,meld工具新版本的安装不能依赖MacPorts、Homebrew等软件包管理工具来安装了。使用MacPorts安装过的软件在/opt/local目录下。Homebrew安装在/user/local目录下,同时它会创建/

2017-04-11 18:11:44 2907

原创 【iOS界面开发】iOS事件派发机制

app启动时,UIApplicationMain方法会被调用,以创建一个UIApplication单例对象,它负责处理和派发系统发送给app事件队列的事件到合适的接收者。事件来源分为三种:UIControl Actions: these are the actions that are registered using the action/target patternUser events:

2017-04-11 03:35:59 1218

原创 【Objective-C Runtime】类和对象的数据结构和消息传递机制

类与对象基础数据结构ClassObjective-C类是由Class类型来表示的,它实际上是一个指向objc_class结构体的指针。它的定义如下:1typedef struct objc_class *Class;查看objc/runtime.h中objc_class结构体的定义如下:struct objc_class { Class isa OBJC_ISA_AVAILABILITY;

2017-03-31 22:37:14 1113

原创 【Objective-C基础】集合类

基础集合类是每一个Mac/iOS应用的基本组成部分。 NSArray/NSMutableArray NSSet/NSMutableSet/NSCountedSet NSOrderedSet/NSMutableOrderedSet NSIndexSet/ NSDictionary/NSMutableDictionary NSPointerArray

2017-03-03 10:57:42 1796

原创 【iOS界面开发】iOS UIControl事件说明

在UIControl控件事件中,简单解释下下面几个事件。说明:由于是在“iOS 模拟器”中测试的,所以不能用手指,只能用鼠标。1)UIControlEventTouchDown指鼠标左键按下(注:只是“按下”)的动作2)UIControlEventTouchDownRepeat指鼠标左键连续多次重复按下(注:只是“按下”)的动作,比如,鼠标连续双击、三击、……、多次连击。说明:多次重复按下时,事件序

2017-02-16 12:40:02 1308

原创 【iOS架构】iOS应用的生命周期

程序的5种状态如图,iOS应用主要分为5种状态。1 [^2]Not Running (非运行状态)。应用没有运行或被系统终止。Inactive(前台非活动状态)。应用正在进入前台状态,但不能接受事件处理。app可能正在执行其他代码。Active(前台活动状态)。应用进入前台状态,能接受事件处理。Background(后台状态)。应用进入后台后,依然能够执行代码。如果有可执行的代码,就会执行代码,如果

2016-07-15 15:59:47 967

原创 【iOS界面开发】视图开发技巧

iOS触摸事件处理界面响应消息机制分两块,(1)首先在视图的层次结构里找到能响应消息的那个视图。(2)然后在找到的视图里处理消息。寻找响应消息视图过程寻找响应消息视图的过程可以借用M了个J的一张图来说明。处理原理如下:• 当用户点击屏幕时,会产生一个触摸事件,系统会将该事件加入到一个由UIApplication管理的事件队列中• UIApplication会从事件队列中取出最前面的事件进行分发以便处

2016-03-13 13:33:15 1998

原创 【iOS架构】iOS ReactiveCocoa函数响应式编程

声明式编程 声明式编程(declarative programming)是一种编程范型,与命令式编程相对立。它描述目标的性质,让电脑明白目标,而非流程。声明式编程不用告诉电脑问题领域,从而避免随之而来的副作用,大幅简化了并行计算的编写难度。而指令式编程则需要用算法来明确的指出每一步该怎么做。 声明式语言包括数据库查询语言(SQL,XQuery),正则表达式,逻辑编程,函数式编程和组态管

2016-03-13 10:56:45 2660

原创 【Xcode使用技巧】Xcode环境变量(environment variables)

Apple Build Setting Reference在苹果的 Build Setting Reference 文档1中可以找到所有可用的变量。工程中存在的所有环境变量在build 过程中,要想观察所有已存在的环境变量,你可以在 Build Phases 中添加一个 “Run Script”,并勾选上 “Show environment variables in build log”。示例打印结

2016-03-13 10:51:31 9618

原创 【Xcode使用技巧】通过Xcode查看真机中应用程序的数据文件

有时候开发调试时,需要查看真机中应用的文件,比如sqlite之类的,可按以下步骤进行:环境:Xcode Version 7.2.1,iPad2。1)点击Xcode的Window菜单项,选择Devices选项。2)点击左边设备一览中的iPad2,右边「Installed Apps」会显示出iPad上的所有第三方应用。3)选中要查看的应用。4)点击下面的设置按钮,选择「Download Containe

2016-03-05 14:21:58 9441

原创 【Web基础】Web性能优化

关于Web性能优化,有非常多的方面可以去做。压缩源码和图片JavaScript文件源代码可以采用混淆压缩的方式,CSS文件源代码进行普通压缩,JPG图片可以根据具体质量来压缩为50%到70%,PNG可以使用一些开源压缩软件来压缩,比如24色变成8色、去掉一些PNG格式信息等。

2015-12-14 13:09:26 734

原创 【C基础】#define宏定义中的#,##,@#,\ 这些符号的神奇用法

C/C++ 宏命令的神奇用法。先看下面三条语句:#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x1. ## 连接操作符##表示连接(token pasting, or token concatenation,merge two tokens into one while expanding macros)。x##

2015-12-08 15:55:34 16516 1

原创 【Web基础】HTTP长连接和短连接以及推送技术原理

HTTP长连接和短连接,推送服务原理

2015-11-27 11:09:38 21813

原创 【C基础】#if、if、#ifdef、#if defined之间的区别

#if的使用说明#if的后面接的是表达式#if (MAX==10)||(MAX==20) code...#endif它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)#if defined的使用#if后面接的是一个宏。#if defined (x) ...code...#end

2015-11-25 13:43:57 87289 3

原创 【iOS设计】一款APP从设计稿到切图过程概述

这篇文章站在GUI设计师的角度概述了APP从项目启动到切片输出的过程,相当于工作流程的介绍。这里写的不是一种规范,只是一种工作方法,加上技术的更新是非常快的,大家在具体工作中,一定要灵活运用。这里我们只说IOS系统下的设计,至于Android,因为尺寸太多,涉及的东西比较乱。1Part 1 项目立项文件结构项目名称v1.0 -> 01_源文件psd 02_效果图jpg

2015-09-29 00:46:28 13575

原创 【iOS架构】iOS应用架构概述

我们可以通过以下方式来理解MVVM与MVC/MVCS/VIPER之间的异同:MVC: View/VC + ModelMVCS: View/VC + Store + ModelMVVM: View/VC +

2015-09-25 09:07:33 1173

原创 【iOS安全】iOS应用安全开发总结

iOS应用由于其直接运行在手机上,相比运行在服务器的后台服务,更有可能被黑客攻击。本文将从网络安全、本地文件和数据安全、源代码安全三个方面,阐述iOS应用在安全性上遇到的挑战。1一、网络安全安全地传输用户密码对密码进行非对称加密,加盐,且在发送时采用`HTTP Post`的方式。防止通讯协议被轻易破解选择类似`protobuf`(Google提供的一个开源数据交换格式,其最大的特点是基于二进制,因

2015-09-25 09:05:03 3146 3

原创 【iOS界面开发】iOS下,UILabel自适应高度的方法

iOS下,UILabel自适应高度的主要思路是通过调用UILabel的- (CGSize)sizeThatFits:(CGSize)size方法来得到label的自适应高度值。

2015-09-24 15:44:16 2522

原创 【Effective Objective-C 2.0读书笔记】第一章:熟悉Objective-C

Objective-C通过一套全新语法,在C语言基础上添加了面向对象特性。Objective-C的语法中频繁使用方括号,且不吝于写出极长的方法名。第1条:了解Objective-C语言的起源所有Objective-C语言的对象都必须像这样声明:NSString *someString = @"the string";,因为对象所占内存总是分配在“堆空间”(heap space)中,而绝不会分配在“栈

2015-07-21 17:42:06 1765

原创 【Effective Objective-C 2.0读书笔记】第二章:对象、消息、运行期

在Objective-C等面向对象语言中,“对象”是基本构造单元,开发者可以通过对象来存储并传递数据。在对象之间传递数据并执行任务的过程即为“消息传递”。当应用程序运行起来之后,为其提供相关支持的代码叫做“Objective-C运行期环境”(Objective-C runtime),它提供了一些使得对象之间能够传递消息的重要函数,并且包含创建类实例所用的全部逻辑。第6条:理解”属性”这一概念属性可以

2015-07-21 15:48:18 1980

原创 【iOS界面开发】Objective-C自动布局(Auto Layout & SizeClass)

Auto Layout自XCode 5以后,在开发Mac OS X或iOS应用程序时,我们可以在Interface Builder中使用Auto Layout特性,以适应不同的屏幕尺寸、旋转方向以及本地化需求。该特性在你新建一个工程后默认处于启动状态。有两种方式可以使用Auto Layout:在Interface Builder中,通过在Builder画布中右键拖放,或者在右下角的菜单实现。通过

2015-07-09 16:40:12 2939

原创 【Objective-C Runtime】Objective-C Runtime文章收集

下面是我看到的关于Objective-C Runtime的文章,先记在这里,有时间再仔细整理下:-)。Objective-C RuntimeMethod Swizzling 和 AOP 实践Objective-C 的 runtime 运行时

2015-07-07 14:51:48 877

原创 【Effective Objective-C 2.0读书笔记】第三章:接口和API设计

一旦你完成了一个应用,你可能会希望在以后的工程中重用部分代码。你也可能会发布一些代码以供其他人来使用。这意味着你需要使用Objective-C的范式和理解众多的陷阱。

2015-07-06 15:23:49 785

原创 【Effective Objective-C 2.0读书笔记】第四章:协议和分类

Objective-C中的“协议”(protocal)类似于java中的接口。协议最为常见的用途是实现委托模式。不过也有其他用法。“分类”(category)机制,可以无须继承子类即可直接为当前类添加方法。

2015-07-03 11:36:59 1469

原创 【Effective Objective-C 2.0读书笔记】第五章:内存管理

Objective-C语言以引用计数来管理内存,这令许多初学者纠结,要是用过以“垃圾收集器”(garbage collector)来管理内存的语言,那么更会如此。“自动引用计数”机制缓解了此问题,不过使用时有很多重要的注意事项,以确保对象模型正确,不致内存泄漏。本章提醒读者注意内存管理中易犯的错误。

2015-06-11 21:28:04 1071

原创 【Xcode使用技巧】Xcode调试方法

这里记录一下自己学习到的一些XCode调试的方法。这些调试方法可以让我们使用XCode编写代码进行调试时用起来更顺心应手。XCode的调试方法包括运行时设置断点,打印到控制台,手写命令打印等。

2015-05-10 18:39:45 10867

原创 【Effective Objective-C 2.0读书笔记】第六章:块(Blocks)和大中枢派发(GCD)

继续这本书的读书笔记,希望在其中也加入自己的一些总结,以加深理解。之前这一章写了很多了,保存到草稿箱中,不知道为何丢失了,真是可惜,看来CSDN的MarkDown编辑器还存在一些bugs,在它打上补丁之前还是写一点发表一下吧。Let’s begin.多线程编程是每个开发者在开发现代应用程序的时候经常碰到的问题。

2015-04-09 23:46:53 2157 1

原创 Linux环境进程间通信的方式

Linux环境下,进程间的通信的方式有:管道、有名管道,信号、消息队列、信号灯、共享内存等。

2015-04-07 15:16:55 854

微软C++/.NET编程规范

C++/.NET编程规范 , 由微软一站式示例代码库项目组推荐 , 部分章节参考自一些微软产品组的编程规范。 编写VC++/VC#/VB.NET 代码时,可以参考或使用本文档。

2011-04-07

空空如也

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

TA关注的人

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