Skip to content

Swizzle pulbic and private method on public class by swift

Notifications You must be signed in to change notification settings

szrexzhu/SwiftSwizzle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Swift Swizzle

Feel free to use or modify.

Swizzle pulbic or private method on public class by swift.

1、Swizzle public api.
We will swizzle method "loadRequest:" of UIWebView.

extension UIWebView {
    func toReplaceLoadRequest(request: NSURLRequest!)
        {
            println("loadRequest replaced!")
            self.toReplaceLoadRequest(request)
        }
    }

Then call like this:

NSObject.swizzleMethod(UIWebView.self,originSelector: "loadRequest:",newSelector:"toReplaceLoadRequest:")

2、Swizzle private api.
We will swizzle method "didFirstLayoutInFrame:frame:" of UIWebView.

extension UIWebView {
        func mttDidFirstLayoutInFrame(webView: UIWebView!,frame: AnyObject!) {
            println("didFirstLayoutInFrame replaced!")
            self.mttDidFirstLayoutInFrame(webView,frame: frame)
        }
    }
    

Then call like this:

NSObject.swizzleInstanceMethodWithClassName("UIWebView",originClassNamePart2: "",originClassNSelectorPart1: "webView:di",originClassNSelectorPart2: "dFirstLayoutInFrame:",newClass: UIWebView.self,newSelector: "mttDidFirstLayoutInFrame:frame:")

About

Swizzle pulbic and private method on public class by swift

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages