Skip to content

Instantly share code, notes, and snippets.

@croath
Created June 4, 2014 01:07
Show Gist options
  • Save croath/a9358dac0530d91e9e2b to your computer and use it in GitHub Desktop.
Save croath/a9358dac0530d91e9e2b to your computer and use it in GitHub Desktop.
var mc:CUnsignedInt = 0
var mlist:UnsafePointer<Method> = class_copyMethodList(UIImageView.classForCoder(), &mc);
println("\(mc) methods")
for var i:CUnsignedInt = 0; i < mc; i++ {
println("Method #\(i): \(sel_getName(method_getName(mlist.memory)))")
mlist = mlist.succ()
}
@koenpunt
Copy link

For swift 2 the following works:

var mc: CUnsignedInt = 0
var mlist: UnsafeMutablePointer<Method> = class_copyMethodList(UIImageView.classForCoder(), &mc);
print("\(mc) methods")

for var i: CUnsignedInt = 0; i < mc; i++ {
    print("Method #\(i): \(method_getName(mlist.memory))")

    mlist = mlist.successor()
}

@realmtai
Copy link

Remember to take a copy of the old pointer and free that.

var mc: CUnsignedInt = 0
var mlist: UnsafeMutablePointer<Method> = class_copyMethodList(UIImageView.classForCoder(), &mc)
let olist = mlist
print("\(mc) methods")

for var i: CUnsignedInt = 0; i < mc; i++ {
    print("Method #\(i): \(method_getName(mlist.memory))")

    mlist = mlist.successor()
}
free(olist)

@hamsternik
Copy link

Fixed for swift 3.

var mc: CUnsignedInt = 0
var mlist: UnsafeMutablePointer<Method?> = class_copyMethodList(FirstViewController.classForCoder(), &mc)
let olist = mlist
print("\(mc) methods")
            
for i in (0..<mc) {
    print("Method #\(i): \(method_getName(mlist.pointee))")
    mlist = mlist.successor()
}
free(olist)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment