JRSwizzle和Aspects,到底该用什么姿势Hook
占楼
占楼
先占坑
明确这一点很重要,我们习惯性地认为所有的OC对象都是NSObject的基类,然而还有NSProxy.从字面意思上来讲,Proxy意为代理人,委托.从命名上也可以窥见,NSProxy一般作为NSObject的补充.
NSObject很了解了,那么NSProxy到底是什么样的定位呢,翻下苹果官方的解释.
我们都知道有很多的api是私有的,同时有很多通知也是没有暴露出来的,有时候我们找到了重现的规律,却没办法找到重现的triger,可以通过监听所有通知并重现来定位该通知.
registerForRemoteNotifications
后即可获取到,不论用户允许还是拒绝application:didRegisterForRemoteNotificationsWithDeviceToken:
方法,你也可以随时手动调用registerForRemoteNotifications
方法来快速拿到已有tokendidFailToRegisterForRemoteNotificationsWithError
方法registerForRemoteNotifications
方法也不会再弹出窗口,所以,谨慎选择弹窗时机.[deviceToken description]
查看,格式为<e49c54cc 8a13341d f9f67000 bb621456 43b308ad 777bb2e0 a3b27f0b fa323edc>
,可以使用以下方法过滤<>
和空格
NSString* token = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];