Swift功能swizzling /运行时

在Swift之前,在Objective-C中,我将使用< objc / runtime.h>在一个类中进行swizzle或hook方法

如果任何人有任何关于修改Swift的运行时和挂起功能(如CydiaSubstrate和其他帮助此领域的库)的信息,请通知我。

我在Swift中用方法swizzling成功。这个例子展示了如何在NSDictionary上挂钩描述方法

我的实现:

extension NSDictionary {
     func myDescription() -> String!{
        println("Description hooked")
        return "Hooooked " + myDescription();
    }
}

开关代码

func swizzleEmAll() {
        var dict:NSDictionary = ["SuperSecret": kSecValueRef]
        var method: Method = class_getInstanceMethod(object_getClass(dict),Selector.convertFromStringLiteral("description"))

        println(dict.description) // Check original description

        var swizzledMethod: Method = class_getInstanceMethod(object_getClass(dict),Selector.convertFromStringLiteral("myDescription"))
        method_exchangeImplementations(method,swizzledMethod)

        println(dict.description) //Check that swizzling works
    }

编辑:
代码将适用于从NSObject继承的任何自定义Swift类(但不适用于没有的类)。更多示例 – https://github.com/mbazaliy/MBSwizzler

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...