If all you care about is if an object is a proxy or not, look at isProxy.
--
Gary L. Wade (Sent from my iPad)
http://www.garywade.com/

> On Dec 13, 2014, at 11:06 AM, Maxthon Chan <m...@maxchan.info> wrote:
> 
> What I am doing here is scanning all loaded classes for subclasses of a 
> certain class. Before any NSObject method can be issued I have to check if it 
> is actually NSObject or NSProxy derivative instead of an Object derivative 
> that does not support NSObject methods. This calls for runtime equivalent for 
> one of the following NSObject methods:
> 
> - [NSObject respondsToSelector:(SEL)aSelector] = 
> class_respondsToSelector(Class, SEL) // this crashed.
> + [NSObject conformsToProtocol:(Protocol *)aProtocol] = 
> class_conformsToProtocol(Class, Protocol *) // check for NSObject protocol, 
> this does not work.
> + [NSObject isSubclassOfClass:(Class)aClass] // no equivalent, have to 
> implement it myself
> 
> I ended up creating this:
> 
> BOOL class_isSubclassOfClass(Class cls, Class other)
> {
>    for (Class c = cls; c; c = class_getSuperclass(c))
>        if (c == other)
>            return YES;
>    return NO;
> }
> 
> If i remembered it right GNUstep runtime have this function. I will file a 
> bug report to Apple and ask them to add this, as it is useful in class 
> scanning and i am using this technique heavily in jailbreak detection.
> 
>> On Dec 14, 2014, at 01:20, Kyle Sluder <k...@ksluder.com> wrote:
>> 
>> On Sat, Dec 13, 2014, at 10:19 AM, Phillip Mills wrote:
>>> Why do you think the problem is with “respondsToSelector:”?  The error
>>> says you’re accessing past the end of a string.
>> 
>> Because the crash happens in a call stack that originates in
>> class_respondsToSelector, and involves none of Maxthon's code.
>> 
>> --Kyle Sluder

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to