DISCLAIMER: Expressed views on this blog are my own.
Next best thing and my savior. NSInvocation. It works in a matter where it will perform your selector just as you would type in [object yada:arg1]. You need to get a method signature before you can init this guy, which is pretty easy to get [object methodSignatureForSelector:@selector(yada:)]; or you can use the class version [[object class] methodSignatureForSelector:...]. Once you have the invocation object, you can setTarget:object and setSelector:@selector(yada:), then call invoke (not performSelector, which is stupid to do at this point) but I like to check if the object responds to selector before doing this invocation object stuff.
One last way if to use the IMF object to call an instance method. You can get IMF objects from [object methodForSelector:@selector(yada:)]; Haha, out of laziness, you can read about it.