On Apr 10, 2008, at 11:22 AM, Rama Krishna wrote:
I am new to Objective-C but I have done C++/C#/Java work. I have been doing some experiments to understand how the language works. I found that it is not necessary for an Objective-C class to derive from Object. I was able to create a class which did not derive from Object contrary to my assumption that all Objective-C classes implicitly derive from Object (such as in C# or
Java).

However, such a class has a problem. It cannot be allocated or initialized. Because it can never get the alloc message as the alloc message is declared in the Object class. My question ,therefore, is how can such classes be instantiated. Is there a library function for that? Surely, the standard alloc function must be using such a function. Or should I just derive all
classes from Object.

You need to implement said methods using lower level primitives available on the system (malloc(), for example)! And you'll likely need to implement a boatload of other methods, depending on what level of interoperability you want with the rest of Cocoa.

However, as someone else indicated...

... you probably do not want to create your own base class. If you look at Cocoa, you'll find that there are very very few base classes. NSProxy is about the most prominent one. Unless you really do need to create a new class hierarchy with very different semantics than the hierarchy derives from NSObject, there is no reason to do define a new root class.

NSObject (Not "Object", btw, as-- in the context of Cocoa-- that refers to pre-1992 APIs) presents a tremendous amount of functionality that provides the foundation on top of which much of Cocoa is implemented; KVO, KVC, bindings, allocation, reference counting, GC, etc.

b.bum


_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to