
iOS/objective-c
文章平均质量分 67
狼_夏天
在写iOS逆向小专栏 https://xiaozhuanlan.com/langzuxiaozi?rel=langzuxiaozi
展开
-
如何测量iOS启动过程耗时
目录main()之前耗时测量main()之后耗时测量main()之前耗时测量测量app的整个启动时间 (Instruments→ App Launch)通过添加环境变量可以打印出APP的启动时间分析 (Edit Scheme → Run → Arguments → Environment Variables) 添加 DYLD_PRINT_STATISTICS_DETAILS(...原创 2020-01-02 18:27:38 · 927 阅读 · 0 评论 -
xcode5中 wax 安装记录
Wax是一个用lua语言编写本地iPhoneapp的框架。它使用OC运行时将OC和Lua进行绑定。通过Wax,你可以用Lua做任何OC可以做到的事情。原创 2014-04-07 22:35:27 · 2124 阅读 · 0 评论 -
iMac定时跑符号化iOSCrash脚本
首先启动 Apache 1.启动sudo apachectl -k start2.重新启动sudo apachectl -k restart设置Apache容器默认目录1.Apache配置文件所在目录 cd /etc/apache2/ 2.修改Apache配置文件 sudo vim httpd.conf 3.查找 DocumentRoot 字符串。“/”为原创 2016-05-27 21:45:26 · 472 阅读 · 0 评论 -
kvo kvc
kvo1.- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context被观察者调用该函数 observe原创 2016-11-29 22:18:39 · 758 阅读 · 0 评论 -
tinypng,批量压缩脚本
该脚本用 Python 编写,应用到了tinify模块,Mac 自带 Python 环境,但是没有 tinify 模块,也没有Python包管理工具,需要先安装 pip 包管理工具,然后再通过 pip 安装 tinify,在官网下载 pip 然后解压,https://pypi.python.org/pypi/pip ,第二个在终端 cd 到解压后目录 ,然后执行sudo p原创 2017-09-08 15:29:45 · 5663 阅读 · 0 评论 -
代码片段 Xcode & Android Studio
Xcode Version8.3.3Android Studio 3.0Canary 41:什么是代码片段 Xcode 中叫 code snippets,当在 Xcode 中输入快捷输入码 dowhile 并回车后,会出现如下代码 这就是 code snippets,我们可以创建一些可重用的代码块,并且在任何需要的地方使用这些代码块,它能提高我们的原创 2017-10-10 17:20:50 · 514 阅读 · 0 评论 -
iOS Tips,不用就会忘记
1.LLDB调试打印2. UIWebView设置UA3. 预处理宏,Preprocessor Macros4. 快捷键5. 执行xcodebuild命令 不工作 xcodebuild not work , 输出 Build settings from command line: 命令后停止。用Xcode打开后就可以执行 编译命令了。6. iOS 8.3之后获取i...原创 2015-12-09 13:45:12 · 1052 阅读 · 0 评论 -
iOS逆向学习之越狱
iPhone 6 越狱版本: 9.2.1需要 windows 系统 开始学习 iPhone 逆向,查了一下那些手机版本可以越狱http://jailbreak.25pp.com/ios/,又在 "苹果越狱"贴吧 查到两款软件,Meridian、g0blin,发现我手上的手机都不能完美越狱,只有一台 iPhone 6s可以实现不完美越狱.名词解释: 完美越狱和不完美越狱。完美越狱: ...原创 2018-01-22 21:20:23 · 2064 阅读 · 0 评论 -
NSLog各种数据的输出格式符
• %@ 对象 • %d, %i 整数 • %u 无符整形 • %f 浮点/双字 • %x, %X 二进制整数 • %o 八进制整数 • %zu size_t • %p转载 2013-06-14 17:40:49 · 735 阅读 · 0 评论 -
iOS逆向学习之 Mac 登录到 iPhone
1. 登录 Mac 登录到 iPhone 是通过终端的命令行 iOS和Mac 都是基于 Darwin(苹果的一个基于Unix的开源系统内核),所以iOS同样支持终端操作,上次越狱的时候就在手机上安装Terminal,用来执行了一下命令。在逆向工程中,经常会通过命令行来操作iPhone,但是在手机上打命令太费劲了,所以就有了Mac登录到iPhone的需求。 Mac 登录到 iPhone 是通过 SS...原创 2018-01-22 22:20:40 · 1066 阅读 · 0 评论 -
NSObject 中 isa 指针源码解读
oc runtime源码 版本 objc4-723 先来一段大家都知道的知识 NSObject类在程序运行,会有多个实例对象,一个类对象,一个元类对象。 其中所有实例对象中的isa指针指向类对象,类对象中的isa指针指向元类对象。NSObject 的元类对象指向自己,其他元类对象指向 NSObject 的元类对象OC 对象都是 C 语言的结构体,所有的对象都包含一个类型为 isa_t...原创 2018-06-22 15:26:58 · 731 阅读 · 0 评论 -
如何将iOS代码写的更“Swift”一点
这篇文章记录要将代码写的更像“Swift”的知识点oc中的协议(protocol)里的函数是有 @optional 和 @required 属性的。但是 Swift 中协议的方法是必须要实现的。有两种方法,一种是把协议转化为 objective-c 的方式,一种是用扩展(extension)。第一种:@objc protocol SomeProtocol{ func requiredFun...原创 2018-11-06 01:45:11 · 269 阅读 · 0 评论 -
iOS 上传zip文件到php服务端demo
需求:iOS端需要写一个上传文件到服务器的功能客户端现有工程用的网络库是 Alamofire func uploadFile(_ filePath : URL){ Alamofire.upload( //采用post表单上传 multipartFormData: { multipartFormData in// ...原创 2019-03-07 18:25:19 · 1070 阅读 · 0 评论 -
Swift 代码编写的关于日志打印的需求
YzLogSwift 代码编写的关于日志打印的需求外面操作的类是 YzLog()功能debug 时打印日志,release 时不打印日志可以在 App 界面最上层显示日志,只有显示功能在浏览器实时展示APP的日志。启动server,可以在电脑的浏览器输入 http://ip:8080/ (ip为手机的IP地址)以上功能只有通过 log.info() 打印的日志才可以,log 为 ...原创 2019-04-18 15:32:35 · 475 阅读 · 0 评论 -
wax lua 脚本升级练习(1)
当发现线上app某一功能出现bug,即使在技术上很快的做出了这一bug的补丁,但是因为AppStore上线审核漫长,这将在一段时间里,用户用的都是这个款带有已知bug的产品。这种情况的一个解决办法就是通过Lua给app打补丁,因为Lua是脚本语言,将脚本放在服务器上,在程序启动的某个时机动态的从服务器上下载Lua代码,并在本地执行,就实现了动态替换app代码,从而快速的给app打补丁。原创 2014-07-14 18:46:02 · 2988 阅读 · 0 评论 -
wax lua 脚本升级练习(2)
wax lua 脚本升级练习(1)介绍了object-c通过调用lua中的函数计算两值乘积并返回显示。这一篇将介绍通过点击按钮下载新的lua脚本文件,并且热加载lua,使起能即时生效。在写代码前需要做一点点准备。1.启动本机的Apache服务,作为新lua脚本的存放位置打开“终端(terminal)”,输入sudo apachectl start(可能需要输入机器秘密),打开S原创 2014-08-02 21:41:36 · 2058 阅读 · 0 评论 -
IOS学习笔记2—Objective C—类、属性、方法
原文 http://blog.youkuaiyun.com/tangren03/article/details/7741853Objective-C1.OC是一门基于C的面向对象语言,是C语言的一个超集,同时具有C语言的特征2.OC对类的定义和实现以及初始化 //声明类接口,继承NSObject对象(该对象是OC中所有类的顶级父类,所转载 2013-06-14 16:32:31 · 631 阅读 · 0 评论 -
ios 笔记之 Iphone程序运行流程
main.m文件,iOS应用程序的主入口main函数的两个参数为命令行参数,在ios开发中不会用到这些元素,包括这两个参数是为了与标准ANSI C保持一致UIApplicationMain函数:为应用程序提供主入口点,创建新的应用程序实例和它的委托。委托负责处理应用程序状态变更,并为那些变更提供响应int main(int argc, cha原创 2013-06-16 20:08:59 · 661 阅读 · 0 评论 -
Xcode快捷键
一:修改公司名称在工程文件中修改:单击左侧列表中的工程文件。在右侧中找到Organization,填写上你所需要的公司名称就好了。在Terminal中修改:在Terminal中输入以下指令:defaults write com.apple Xcode PBXCustomTemplateMacroDefinitions -> ’{“OGANIZATIONNAME”=”你转载 2013-06-19 16:20:08 · 970 阅读 · 0 评论 -
Objective-C 知识点一
1..#import #import 类似于C语言中的#include 。C语言中用#ifdef命令来避免一个文件重复包含的情况。而#import实现了这个功能。2..NSLog()函数NSLog()和C语言中的printf()类似。3..@符号@”字符串”——说明这是一个@NSString元素,也就是Cocoa的字符串。NSString有很多特原创 2013-06-19 17:11:35 · 850 阅读 · 0 评论 -
为类添加方法和实例(category与associative)
category与associative作为objective-c的扩展机制的两个特性,category即类别,可以通过它来扩展方法;associative,可以通过它来扩展属性; category在iOS开发中比较常见,相对的associative,就用的比较少了。要用它必须使用的头文件,然后就可以自由使用objc_getAssociatedObject以及objc_se原创 2013-07-22 17:09:47 · 715 阅读 · 0 评论 -
ios UIViewController的生命周期
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autore原创 2013-08-05 23:04:09 · 706 阅读 · 0 评论 -
iPhone不显示图标
如何通过代码让一个应用在安装后 不在iPhone上显示图标.(机器不越狱的情况下)应用安装之后 隐藏图标.代码 plist里面添加SBAppTags hidden原创 2013-09-16 11:34:47 · 780 阅读 · 0 评论 -
#与##作用
预编译的一些知识我们的代码在build时并不是直接进行编译的,在编译之前还进行了预编译处理。预编译会把include或import的文件导入到文件中,同时会将代码中用到的宏进行替换。注意宏是直接在代码中替换成宏的定义的,如果有嵌套也会逐层替换。“#”指示一些预编译命令预编译命令一般都是以#开头的,比如#include、#import、#if等,在这里就不原创 2013-12-08 17:51:46 · 1064 阅读 · 0 评论 -
NSSet versus NSArray
最近需要将c++代码改到objective c下,c++代码中有用到std::list容器。查询后得知NSSet与NSArray都比较符合标准。到底用哪个呢。下面是网上搜到的普遍答案NSSet和我们常用NSArry区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了一个算法hash(散列,也可直译为哈希);开发文档中这样解释:You can use sets原创 2013-12-09 23:31:39 · 1112 阅读 · 0 评论 -
Anti-Debug 小试牛刀
Anti-Debug 小试牛刀 本文整理了日常生活中遇到的一些Anti-Debug技术,除非特殊说明,均适用于Mac/iOS开发作为第一篇正式博文,会不定期更新,谢谢大家.禁止附加或调试-ptrace中断检测-int3检测lldb更多禁止附加或调试-ptracePT_DENY_ATTACH1 is an Apple-specific constant转载 2013-12-04 12:31:18 · 3365 阅读 · 0 评论 -
越来越容易的 Objective-c XCode4.5以后
以前声明属性 要这样.h@property (nonatomic, strong) NSString * username.m @synthesize username = _username;现在只要.h@property (nonatomic, strong) NSString * username原创 2013-06-28 17:30:17 · 782 阅读 · 0 评论 -
Xcode 5 如何禁用某个文件ARC(Automatic Reference Counting)
Disable Automatic Reference Counting for Some Files in Xcode?1.Target/Build Phases/Compile Sources2.Select desired files ,Compiler Flags3.Type -fno-objc-arc4.Done原创 2014-02-28 22:46:24 · 1032 阅读 · 0 评论 -
Xcode 如何向工程里添加 framework
1.In the project navigator,select your project2.Select your target3.Select the 'Build Phases' tab4.Open'Link Binaries With Libraries' expander5.Click the'+'button6.Select your framework7原创 2014-02-28 23:18:21 · 3047 阅读 · 0 评论 -
Xcode 5 Tutorial - Window close event changed into hiding event
点击红叉按钮隐藏窗体,command+Q弹出对话框确认。原创 2014-02-28 21:59:15 · 776 阅读 · 0 评论 -
App Crashed 记录
EXC_BAD_ACCESS 一般是由于内存管理问题而引起的。unrecognized selector sent to instance XXX正在试着执行一个不存在的方法。两种可能,一种是你调用对象的方法确实不存在,你没有去实现他;还有一种可能是方法实现了,但是对象弄错了。比如对象A和对象B.你想调用对象a中的test方法。[A test],有可能是你没原创 2014-03-14 11:20:02 · 1641 阅读 · 0 评论 -
ios 笔记之 IBOutlet 与 copy,retain,assign
* assign: 简单赋值,不更改索引计数(Reference Counting), 对基础数据类型 (NSInteger)和C数据类型(int, float, double, char,等)。* copy: 创建一个和原对象相同, 索引计数为1的新对象。 dealloc 需要 release,原对象要继承NSCopying 协议原创 2013-06-14 11:26:48 · 1073 阅读 · 0 评论