V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  fffang  ›  全部回复第 8 页 / 共 25 页
回复总数  485
1 ... 4  5  6  7  8  9  10  11  12  13 ... 25  
@Vveeb 这个复杂度怎么算的?
写 OC 的表示不知道什么叫引用
2021-01-18 13:59:34 +08:00
回复了 zzzain46 创建的主题 奇思妙想 脑洞:二维码在多久的未来可能会被什么新技术替代?
@wolfan
@learningman
二维码不可能被近场通讯技术取代,不要忘了二维码可以以图片为载体进行传播,而不单单是扫码这么简单。
2021-01-18 10:14:36 +08:00
回复了 Ptu2sha 创建的主题 问与答 问下有做菜的同学
我的不粘锅中间有黄黄的东西,其他部分是黑色的,这算是涂层坏了吗,有什么危害?
2021-01-11 11:38:58 +08:00
回复了 otakustay 创建的主题 MacBook Pro M1 到手了,感觉非常惊喜
已退货,等 M2
2021-01-07 16:32:54 +08:00
回复了 CipherSysu 创建的主题 Apple 刚拿到 M1 的 mba,有什么要注意的吗
退了等 M2
2021-01-05 20:01:11 +08:00
回复了 lcdxiangzi 创建的主题 奇思妙想 有没有老哥帮忙推荐点酒,新手上路自己喝的。
搞点朗姆酒配可乐,就是传说中的自由古巴
2020-12-28 22:49:07 +08:00
回复了 Marchfish3 创建的主题 MacBook Pro 每次打开斗鱼都会自动下载一个.woff 格式的东西
好家伙,但我选择按键精灵+屏幕截取+OCR
@nlzy
@wakzz
因为 Terminal 自带 MD5 所以大家都用 MD5 吧。。
2020-12-28 14:12:34 +08:00
回复了 egoistttt 创建的主题 问与答 非学生党,购买 iPad pro 到底是不是浪费钱呢?
为啥买后爱奇艺,而不是买后腾讯视频,买后哔哩哔哩,买后优酷?
2020-12-28 10:36:23 +08:00
回复了 ly61 创建的主题 MacBook Pro Apple 账户每次登录都会提示 “Apple 已锁定”,求问怎么解决
你是不是有两个常用 apple id ?
2020-12-23 11:29:28 +08:00
回复了 felixin 创建的主题 Android 最轻 android 手机排名推荐
得看密度,先把手机放到水中求一下体积。
2020-12-14 17:46:08 +08:00
回复了 sybb 创建的主题 Vue.js 如何优雅的实现权限管理功能?
@lower 这样的话,我改个 Url 不就进去了?
2020-12-10 19:09:43 +08:00
回复了 fffang 创建的主题 iDev 这种 crash 算是崩溃在哪一行?
InitWithCoder`-[UIViewController(hook) new_initWithCoder:]:
0x1043e1e60 <+0>: sub sp, sp, #0x40 ; =0x40
0x1043e1e64 <+4>: stp x29, x30, [sp, #0x30]
0x1043e1e68 <+8>: add x29, sp, #0x30 ; =0x30
0x1043e1e6c <+12>: stur x0, [x29, #-0x8]
0x1043e1e70 <+16>: stur x1, [x29, #-0x10]
0x1043e1e74 <+20>: add x8, sp, #0x18 ; =0x18
0x1043e1e78 <+24>: mov x9, #0x0
0x1043e1e7c <+28>: str x9, [sp, #0x18]
0x1043e1e80 <+32>: mov x0, x8
0x1043e1e84 <+36>: mov x1, x2
0x1043e1e88 <+40>: str x8, [sp, #0x10]
0x1043e1e8c <+44>: str x9, [sp, #0x8]
0x1043e1e90 <+48>: bl 0x1043e253c ; symbol stub for: objc_storeStrong
0x1043e1e94 <+52>: ldur x0, [x29, #-0x8]
0x1043e1e98 <+56>: ldr x2, [sp, #0x18]
0x1043e1e9c <+60>: adrp x8, 4
0x1043e1ea0 <+64>: add x8, x8, #0x4b8 ; =0x4b8
0x1043e1ea4 <+68>: ldr x1, [x8]
0x1043e1ea8 <+72>: bl 0x1043e2500 ; symbol stub for: objc_msgSend
0x1043e1eac <+76>: bl 0x1043e2518 ; symbol stub for: objc_release
-> 0x1043e1eb0 <+80>: ldur x0, [x29, #-0x8]
0x1043e1eb4 <+84>: bl 0x1043e2524 ; symbol stub for: objc_retain
0x1043e1eb8 <+88>: ldr x8, [sp, #0x10]
0x1043e1ebc <+92>: str x0, [sp]
0x1043e1ec0 <+96>: mov x0, x8
0x1043e1ec4 <+100>: ldr x9, [sp, #0x8]
0x1043e1ec8 <+104>: mov x1, x9
0x1043e1ecc <+108>: bl 0x1043e253c ; symbol stub for: objc_storeStrong
0x1043e1ed0 <+112>: ldr x0, [sp]
0x1043e1ed4 <+116>: ldp x29, x30, [sp, #0x30]
0x1043e1ed8 <+120>: add sp, sp, #0x40 ; =0x40
0x1043e1edc <+124>: ret



InitWithCoder`-[UIViewController(hook) abc_initWithCoder:]:
0x104ac1e60 <+0>: sub sp, sp, #0x40 ; =0x40
0x104ac1e64 <+4>: stp x29, x30, [sp, #0x30]
0x104ac1e68 <+8>: add x29, sp, #0x30 ; =0x30
0x104ac1e6c <+12>: stur x0, [x29, #-0x8]
0x104ac1e70 <+16>: stur x1, [x29, #-0x10]
0x104ac1e74 <+20>: add x8, sp, #0x18 ; =0x18
0x104ac1e78 <+24>: mov x9, #0x0
0x104ac1e7c <+28>: str x9, [sp, #0x18]
0x104ac1e80 <+32>: mov x0, x8
0x104ac1e84 <+36>: mov x1, x2
0x104ac1e88 <+40>: str x8, [sp, #0x10]
0x104ac1e8c <+44>: str x9, [sp, #0x8]
0x104ac1e90 <+48>: bl 0x104ac2530 ; symbol stub for: objc_storeStrong
0x104ac1e94 <+52>: ldur x0, [x29, #-0x8]
0x104ac1e98 <+56>: ldr x2, [sp, #0x18]
0x104ac1e9c <+60>: adrp x8, 4
0x104ac1ea0 <+64>: add x8, x8, #0x4b8 ; =0x4b8
0x104ac1ea4 <+68>: ldr x1, [x8]
0x104ac1ea8 <+72>: bl 0x104ac2500 ; symbol stub for: objc_msgSend
0x104ac1eac <+76>: mov x29, x29
0x104ac1eb0 <+80>: bl 0x104ac253c ; symbol stub for: objc_unsafeClaimAutoreleasedReturnValue
-> 0x104ac1eb4 <+84>: ldur x8, [x29, #-0x8]
0x104ac1eb8 <+88>: ldr x9, [sp, #0x10]
0x104ac1ebc <+92>: mov x0, x9
0x104ac1ec0 <+96>: ldr x10, [sp, #0x8]
0x104ac1ec4 <+100>: mov x1, x10
0x104ac1ec8 <+104>: str x8, [sp]
0x104ac1ecc <+108>: bl 0x104ac2530 ; symbol stub for: objc_storeStrong
0x104ac1ed0 <+112>: ldr x0, [sp]
0x104ac1ed4 <+116>: ldp x29, x30, [sp, #0x30]
0x104ac1ed8 <+120>: add sp, sp, #0x40 ; =0x40
0x104ac1edc <+124>: ret

以 new 开头的方法到底做了什么呢?附上两个这两个仅仅方法名不同的汇编实现以供有兴趣的同学研究~
2020-12-10 18:58:29 +08:00
回复了 fffang 创建的主题 iDev 这种 crash 算是崩溃在哪一行?
其实我正是在寻找 objc 内部处理 prefix 为 new 的方法的实现才特意这么写的,不过导致崩溃确实是我没想到的。
2020-12-10 16:49:58 +08:00
回复了 fffang 创建的主题 iDev 这种 crash 算是崩溃在哪一行?
@onevcat 感谢,了解了。不过我翻了 objc 源码也没发现哪个地方有这部分的实现,用 clang 转写成 c++也不会有 retain 之类的关键词。
2020-12-09 16:45:36 +08:00
回复了 coderluan 创建的主题 分享发现 玩游戏无意发现个装备叫"福报盾", 属性如下.......
那么,如何获取呢?
2020-12-09 16:41:34 +08:00
回复了 fffang 创建的主题 iDev 这种 crash 算是崩溃在哪一行?
@arnoldxiao 这样是可以的,同理,把方法名中的 new 换掉也可以,直接 return 也可以,不过想知道为什么 self 经过原来的 init 方法会被 release 掉。
2020-12-08 19:00:18 +08:00
回复了 xuewuchen 创建的主题 问与答 是自己组个 NAS 呢?还是买个网盘会员呢?
不觉得 NAS 很麻烦吗?
2020-12-07 15:31:32 +08:00
回复了 fffang 创建的主题 iDev 这种 crash 算是崩溃在哪一行?
```
- (instancetype)new_initWithCoder:(NSCoder *)coder{
[self new_initWithCoder:coder];
return self;
}
```


@sunnywqf 原始代码就这些,就是 hook 了初始化方法。按照上述代码运行会崩溃,但是直接` [self new_initWithCoder:coder];`这样是不会崩溃的,有兴趣的话可以一起研究下。
1 ... 4  5  6  7  8  9  10  11  12  13 ... 25  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   969 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 21:55 · PVG 05:55 · LAX 13:55 · JFK 16:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.