方法编码

概念

To assist the runtime system, the compiler encodes the return and argument types for each method in a character string and associates the string with the method selector.

为了辅助运行时系统,编译器对字符串中每个方法的返回和参数类型进行编码,并将字符串与方法选择器相关联

阅读更多

类的数据结构(runtime.h)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct objc_class {
Class isa OBJC_ISA_AVAILABILITY;

#if !__OBJC2__
Class super_class OBJC2_UNAVAILABLE;
const char *name OBJC2_UNAVAILABLE;
long version OBJC2_UNAVAILABLE;
long info OBJC2_UNAVAILABLE;
long instance_size OBJC2_UNAVAILABLE;
struct objc_ivar_list *ivars OBJC2_UNAVAILABLE;
struct objc_method_list **methodLists OBJC2_UNAVAILABLE;
struct objc_cache *cache OBJC2_UNAVAILABLE;
struct objc_protocol_list *protocols OBJC2_UNAVAILABLE;
#endif

} OBJC2_UNAVAILABLE;
/* Use `Class` instead of `struct objc_class *` */

阅读更多

目标

  • shell脚本自动生成应用的图标

前提

  • .png格式的图片进行缩小操作不会失真
  • 应用的图标尺寸是可预先确定

阅读更多

前提条件

  1. 越狱设备
  2. 设备已安装OpenSSH

流程

  1. 生成RSA证书
  2. 推送公钥到iOS设备
  3. 配置~/.ssh/config文件
  4. 远程SSH登陆

阅读更多

输出 UIView 的层级结构
输出 UIViewController 的层级结构
输出类的属性与方法列表
形如[0xAbc …]调用时如何出现方法提示 [161129更新]
lldb 如何支持 frame 类型的输出 [161204更新]

阅读更多

前言

Xcode8 出于安全原因,禁止了第三方插件,改为 Xcode Source Editor

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×