V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  coa  ›  全部回复第 2 页 / 共 4 页
回复总数  69
1  2  3  4  
不明白启动时为嘛一定要取得所有类,不应该直接针对 UIViewController 进行 hook 吗?还有其他类有 viewdidload 方法?这阶段对其他类的自省估计得浪费不少时间。。

+load 不用起一个基类啊,正常姿势不是放在 category 么?+load 又不会被覆盖,也没啥侵入性, SDK 可以用吧。。

sleep 一下估计不是好方法,莫名想起网络请求不用回调,估摸着 delay 个零点几秒再刷新 UI 这样的无语做法。。程序应该足够确定不应该依赖这一类“估摸”。。。

不清楚 method_exchangeImplementations 为何会占用大量资源?这不是常用的 Method Swizzle 方式么。。实在是这个方法有问题,要不试试将 viewdidload 选择器 hook 到 objc_msgForward 的实现,强行进入消息转发,再 hook forwardInvocation ,再转 viewdidload 的实现?不过到 forwardInvocation 之前还有不少动作,感觉时间也不少。。还是觉得 method_exchangeImplementations 不该有问题。。。

感觉朝 Method Swizzle 进行优化方向好像不大对,还是找找看有没有其他更直接的取得执行时间的方法靠谱些。。。
2017-01-17 22:46:24 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@Midnight 安装 kcptun 、锐速之类的加速软件会起质的变化,不过据说是不大厚道的做法,有的地方 udp 流量一上去也会被限制,所以平时一般也只做网页浏览,油管上的少。。。
2017-01-17 21:47:05 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@neilp 原来 server 端也得安装 mosh ,可以了~虽然没境内的快,但至少比直连好了。。
2017-01-17 21:28:47 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@bintianbaihua 看着和 ngrok 类似内网穿透用的?还能这么用,回头看看。。。
2017-01-17 21:24:20 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@sfree2005 需要再多一个大陆外的机子太不经济。。>_<
2017-01-17 21:23:23 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@neilp 试了下 mosh ,不知道是不是姿势不对。。
`mosh xxx.xxx.xxx.xxx --ssh="ssh -i ~/.ssh/id_rsa.bwg -p xxxxx"`
服务器禁用了密码登录,用的密钥,这个能用吗?
2017-01-17 20:51:50 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@privil @neilp 这个看起来是类似 iTerm2 之类的终端工具?我先去找来试试。。。
2017-01-17 20:50:28 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@cevincheung 搬瓦工已经是启用 kcptun 的了,电信百兆跑满没问题。。
@jacy 这个是 Google BBR 那个吗? linode 上加速用的就是这个。。。
几个代理在其他浏览器其他地方是速度都是没问题,貌似不是这个原因。。。
2017-01-17 20:47:55 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
@uuuing 这个我先去了解下。。
2017-01-17 20:37:54 +08:00
回复了 coa 创建的主题 Linux ssh 登录境外 太慢怎么破?
总算出现在正确节点了,果然标题触发关键字会被移动。。。 = =||
这个强, Code Runner 2 胜在支持 Objective C ,可惜收费。。求问 Atom 下有没有类似的东西。。。
2016-11-04 01:20:18 +08:00
回复了 ilumer 创建的主题 Android 如何使用 RxJava 中的 subject。
Android 的不清楚,但猜想 FRP 概念上各语言应该通用。

iOS 下使用 ReactiveCocoa 也有一个 RACSubject , RACSubject 被警告比较危险是因为它既可以被订阅,也可以充当订阅者,自由度比较大,不好把控。 RACSubject 会维护一个 Subscriber 列表,每当有 Subscriber 对其订阅时,就会把它添加到列表中(可以被订阅)。同时一旦有人向其 sendNext ,之前添加到列表中的所有订阅者都会取得该值(实现了 RACSubscriber 协议,可以充当订阅者)。

打个比方,现在有个 tableView ,初始化时进行订阅,绑定好需要的操作,然后在点击 Cell 时把值 send 过去,绑定好的操作就能收到该值开始运作。配合 MVVM 使用的话看起来结构会十分清晰,耦合度相当低。
2016-10-21 19:15:28 +08:00
回复了 acumen 创建的主题 C 关于 OC 底层的一个问题
其他关系都挺清晰了~自己也是没看明白这一页 objc_class 和 class_t 的关系,感觉 objc_object 后边接着 class_t 就挺顺畅的,不明白 objc_class 的作用~~不是纯 C 出身看这些源码看得好纠结~~ =。=
2016-10-21 09:15:23 +08:00
回复了 acumen 创建的主题 C 关于 OC 底层的一个问题
objc_class 的 isa 指向 meta class 。 class 定义了实例方法的实现, meta class 定义了类方法的实现,这样实例方法和类方法都能通过 isa 实现消息发送。最末端的 isa 指向 NSObject ,而 NSObject 的 isa 指向自己。

meta class 是为了让类方法也能通过 isa 进行消息传递,除了比 class 少了成员变量的定义,所以猜想除了这点外,底层内容应该确实是一样的。
2016-10-21 00:03:51 +08:00
回复了 acumen 创建的主题 C 关于 OC 底层的一个问题
Objective C 基于 C 的基础上拓展出面对对象特性,所以该段实际上是把先假设你有 C 的基础来解释它的内部原理。试着返回去跳过 C 的内容直接来看:

1.“通过成员变量 isa 保持该类的结构体实例指针。”——直接用 OC 来描述就是:每一个初始化出来的实例,内部都有一个名为 isa 的指针指向它的类。类其实也是“对象”,把它称为“类对象”也未尝不可,在内存上表现和实例对象一毛一样。

2.“关于图中 class_t 结构体怎么理解?”——直接理解为实例的模板没错,或者说,抛开它 C 的解释,这就是类。这里 objc_class 和 class_t 可能会造成一些混淆,看起来 object_class 内部只是定义了 isa 指针, class_t 才是在这基础上增加定义了函数指针等其他东西,所以 class_t 才是和类相对应的。

当你向一个实例发送消息时,它会找到 isa 指向的地址,即类,类里存着所有消息名(选择器)和函数地址的对应列表,找到对应的函数并调用,就完成了一次消息发送。灵活地操作这过程就能实现 runtime 的各种黑魔法。

总而言之 OC 对象是在 C 的结构体上做了类型定义(当然内部实现肯定不止这么简单),你看到 objc_object 结构体直接当成实例对象,看到 class_t 结构体直接当成类就行。

这书是很久以前看过一部分,可能存在一些理解上的偏颇,仅供参考。
2016-10-19 23:01:25 +08:00
回复了 enenaaa 创建的主题 程序员 我就问一下大家写代码都是测试驱动吗
曾经想尝试下来着,后来发现如果没有一定架构意识,属于想到哪写到哪的这种根本驱动不起来,会出现测试和开发不断两头改的憋屈情形。。还有就是真写起来光测试代码可能不一定比开发代码少多少。。代码量增加可观。。 so 。。。
DaoCloud 没有公有云貌似,得注册登录才有一个私有地址。。。

https://docker.mirrors.ustc.edu.cn (中科大真业界良心!)
https://c.163.com/hub
https://hub.tenxcloud.com/
2016-09-23 12:21:23 +08:00
回复了 coa 创建的主题 程序员 被微信小程序刷了一天屏,作为原生 iOSer 鸭梨山大
@kitalphaj
@Felldeadbird

这和单纯推出一个类 RN 框架差别大了去了。假设它只是推出这么一个框架,根本起不来这么大波澜。前头不还有 RN 、 weex ,谁比谁胜出一筹还不一定,并且再牛逼也比不过 native ,只要契合公司业务,爱用哪个用哪个。而微信小程序人家根本不是这么个意思啊,原先是打着应用号的名字,也就是说起码是和公众号同一级别的东西,这不是框架不框架的问题,这是人家生态圈的一环!

打个比方,公司在新浪开了微博,那腾讯那边也得去开个吧,搁现在也得开公众号吧,别人都开了,我当然也得开啊。小程序很大可能就是类似这么个东西,别人都有我也得有,迫不得已被推着走。只要性能能够向原生靠近,到时候“是个互联网公司就得有自己的 APP ”这种观念,说不定就和自己买空间搭域名那样式微了,都托管给大厂,自己专注于内容。
2016-09-23 12:03:54 +08:00
回复了 coa 创建的主题 程序员 被微信小程序刷了一天屏,作为原生 iOSer 鸭梨山大
@Felldeadbird 哈哈哈哈哈
2016-09-23 12:02:36 +08:00
回复了 coa 创建的主题 程序员 被微信小程序刷了一天屏,作为原生 iOSer 鸭梨山大
@jayzjj000

没错,就是这种感觉!只要小程序性能体验和 H5 相比能有明显提升,哪怕比不上 RN 、 native ,借着微信的体量被推着走的可能性非常大。
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4709 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 09:48 · PVG 17:48 · LAX 01:48 · JFK 04:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.