But I still need some way to tell them from NSObject/NSProxy decedents from my 
class walking. Any method calling will cause a crash there.

> On Dec 15, 2014, at 23:48, Clark S. Cox III <clarkc...@gmail.com> wrote:
> 
> That does not mean that they're using "Object" only that they're using a base 
> class other than "NSObject" or "NSProxy". Why can't you just ignore such 
> classes?
> 
> Sent from my iPhone
> 
> On Dec 14, 2014, at 23:31, Maxthon Chan <m...@maxchan.info 
> <mailto:m...@maxchan.info>> wrote:
> 
>> My class scanning returned several OS* classes that does not conform to 
>> NSObject protocol.
>> 
>>> On Dec 15, 2014, at 00:29, Clark S. Cox III <clarkc...@gmail.com 
>>> <mailto:clarkc...@gmail.com>> wrote:
>>> 
>>>> 
>>>> On Dec 13, 2014, at 11:57, Maxthon Chan <m...@maxchan.info 
>>>> <mailto:m...@maxchan.info>> wrote:
>>>> 
>>>> NSProxy checking actually work, but throwing those classes that derive 
>>>> from Object class (note I used capitalised O here, the old Object class 
>>>> from early NeXT times, also used heavily in OS X kernel, GCD and Mach 
>>>> ports)
>>> 
>>> What makes you think that Object is used in *any* of those places?
>>> 
>>>> into the mix means that no method can be sent before class is determined. 
>>>> I would suggest Apple add one runtime function class_isSubclassOfClass() 
>>>> that mirrors the functionality of NSObject and NSProxy method 
>>>> isSubclassOfClass so that derivatives of the old Object class can be 
>>>> detected more easily.
>>>> 
>>>>> On Dec 14, 2014, at 03:49, Gary L. Wade <garyw...@desisoftsystems.com 
>>>>> <mailto:garyw...@desisoftsystems.com>> wrote:
>>>>> 
>>>>> Are you saying that Apple's well-documented approach to see if an object 
>>>>> is derived from NSProxy does not work? If that's the case, you need to 
>>>>> submit a bug report to Apple. That's a serious issue that only Apple can 
>>>>> help you with.
>>>>> 
>>>>> If you are using objects not derived from NSObject nor NSProxy, then 
>>>>> change your design.
>>>>> --
>>>>> Gary L. Wade (Sent from my iPad)
>>>>> http://www.garywade.com/ <http://www.garywade.com/>
>>>>> 
>>>>>> On Dec 13, 2014, at 11:40 AM, Maxthon Chan <m...@maxchan.info 
>>>>>> <mailto:m...@maxchan.info>> wrote:
>>>>>> 
>>>>>> Ain’t work! Will crash if an Object derivative showed up.
>>>>>> 
>>>>>> I am scanning ALL loaded classes and only subclasses of a certain class 
>>>>>> is interested. But due to the nature of this class scanning before I can 
>>>>>> make sure that the class derives from NSObject I cannot call any method 
>>>>>> on it.
>>>>>> 
>>>>>>> On Dec 14, 2014, at 03:34, Gary L. Wade <garyw...@desisoftsystems.com 
>>>>>>> <mailto:garyw...@desisoftsystems.com>> wrote:
>>>>>>> 
>>>>>>> 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/ <http://www.garywade.com/>
>>>>>>> 
>>>>>>>> On Dec 13, 2014, at 11:06 AM, Maxthon Chan <m...@maxchan.info 
>>>>>>>> <mailto: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 
>>>>>>>>> <mailto: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 
>>>> <mailto: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 
>>>> <http://lists.apple.com/>
>>>> 
>>>> Help/Unsubscribe/Update your Subscription:
>>>> https://lists.apple.com/mailman/options/cocoa-dev/clarkcox3%40gmail.com 
>>>> <https://lists.apple.com/mailman/options/cocoa-dev/clarkcox3%40gmail.com>
>>>> 
>>>> This email sent to clarkc...@gmail.com <mailto:clarkc...@gmail.com>

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

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