iOS使用Autolayout后,如何更新frame

答案:调用下layoutIfNeeded后,系统会触发更新,但不一定保证何时能更新。

如果要强制获得Autolayout的frame可以给UIView增加如下的Category方法:
- (CGFloat)my_layoutHeight {
return [self systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
}

- (CGFloat)my_layoutWidth {
r[......]

继续阅读

iOS如何实现TCP、UDP抓包

参考文献:三种经典iPhone上网络抓包方法详解

如果是HTTP协议的,可以用HTTP代理,然后Charles之类的抓包。

TCP或者UDP协议的就不行了。

如下搞:

1、查看手机的UDID:

forumImage20160321110512019

2、建立连接
rvictl -s <UDID>
这样,PC上就多了一个虚拟的端口rvi0。可以用 -l参数查看有哪些虚拟端口:
rvictl -l
现在可以用wireshark捕捉这个端口的数据了。启动wireshark,并选择网络接口,如图:[......]

继续阅读

iOS调用AVAudioSession的setActive(false)后,其他app无法恢复的问题

转载自:ios播放声音中断后台音乐的问题

今天遇到一个ios播放声音中断后台音乐的问题,在我的app中如果调用AVAudioSession 播放完声音,后台的qq音乐偶尔不能恢复,而网易云音乐一次都不能恢复播放,研究了一下AVAudioSession ,我之前调用[audioSession setActive:NO error:&err];还有一个方法
/* Set the session active or inactive. Note that activating an a[......]

继续阅读

iOS接入Bugly的JSPatch热更新服务

JSPatch诞生于2015年5月,最初是腾讯广研高级iOS开发@bang的个人项目。
它能够使用JavaScript调用Objective-C的原生接口,从而动态植入代码来替换旧代码,以实现修复线上bug。

JSPatch在一定限制的条件下(对于部分语法不支持)实现了OC->JS以及JS->OC的这两个过程,但是对于js是如何下发到客户端的,JSPatch并未做出定义。

近期,Bugly团队将JSPatch集成进了系统,并提供了服务端。接入非常简单,本文探索一下整个接[......]

继续阅读