首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
一线搬砖工人
掘友等级
iOS
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
33
文章 27
沸点 6
赞
33
返回
|
搜索文章
赞
文章( 27 )
沸点( 6 )
Stinger--实践实现特定实例对象的AOP
在 iOS完整实践: 使用Libffi实现AOP 一文中,我们介绍了实现AOP的一种方式,通过解析目标方法的签名,使用ffi_prep_cif和ffi_prep_closure_loc构造壳函数替换原函数实现,以感知原方法调用时机及捕获参数,最后通过ffi_call利用预生成的…
Hook方法的新姿势--Stinger (使用libffi实现AOP )
众所周知,使用runtime的提供的接口,我们可以设定原方法的IMP,或交换原方法和目标方法的IMP,以完全代替原方法的实现,或为原实现前后相当于加一段额外的代码。 使用知名的AOP库 Aspects ,可以更便捷地为原方法实现前后增加(代替)额外的执行。 另外,Aspects…
亮剑: Stinger到底能比Aspects快多少
同时把被Hook类的 -(void)forwardInvocation:(NSInvocation *)invocation方法的函数指针替换为参数对齐的C函数__ASPECTS_ARE_BEING_CALLED__(NSObject *self, SEL selector, …
亮剑 - Stinger 是如何在速度上吊打 Aspects 的
同时把被Hook类的 -(void)forwardInvocation:(NSInvocation *)invocation方法的函数指针替换为参数对齐的C函数__ASPECTS_ARE_BEING_CALLED__(NSObject *self, SEL selector, …
【WWDC2019 Session】Xcode 11新特性
Apple WWDC 2019 正如火如荼的进行着。按照WWDC计划,美国时间从Tuesday到Friday都会有各种Session分享(实在干货)。所有Session相关的Video、PPT都将陆续在 WWDC2019官网 放出。 撸主会根据Session Topic与实际工…
iOS Memory 内存详解 (长文)
iOS 是基于 BSD 发展而来,所以先理解一般的桌面操作系统的内存机制是非常有必要的。在此基础之上,本文会进一步在 iOS 系统层面进行分析,包括 iOS 整体的内存机制,以及 iOS 系统运行时的内存占用的情况。最后会将粒度缩小到 iOS 中的单个 app,讲到单个 app…
Flutter开发实战--开发环境搭建
下载完成后将其解压到你想安装的目录。 重启终端或者执行source $HOME/.bash_profile刷新当前终端窗口。 该命令检查您的环境并在终端窗口中显示报告。Dart SDK已经在捆绑在Flutter里了,没有必要单独安装Dart。 仔细检查命令行输出以获取可能需要安…
Flutter开发实战--起步
上述命令创建一个Flutter项目,项目名为hello_flutter,其中包含一个使用Material 组件的简单的演示应用程序。 在项目目录中,应用程序的代码位于 lib/main.dart. 主意,要在VS Code的右下角选择了目标设备,前提是电脑已经安装好了Xcode…
记录一次 WWDC 之旅
第一次参加WWDC,还是以全世界的1/350的Scholar的身份,也许长这么大从来没有这么开心过了。平常天天睡懒觉到八九点的我,这一个星期居然每天都能五六点就自然醒,一大早爬起来要么去会场听session,去lab跟engineer们尬聊,然后下午在溜出去到处玩。当然了,整个…
从 SwiftUI 谈声明式 UI 与类型系统
Apple 在 WWDC19 上正式发布了 Project Catalyst(原 Marzipan),使得开发者能够将 iPadOS app 移植到 macOS 上。同时 SwiftUI 也压轴亮相,正式统一了 Apple 全平台的 UI 开发解决方案。恰逢前些时候,Googl…
下一页
个人成就
文章被点赞
122
文章被阅读
22,150
掘力值
576
关注了
20
关注者
1,782
收藏集
1
关注标签
3
加入于
2017-12-13