On Tue, Nov 17, 2009 at 5:47 PM, Bill Northcott
<address@hidden> wrote:
On 17/11/2009, at 3:59 PM, Scott Christley wrote:
> Gosh! How dare Apple make up a convention after Swarm was written! They could have at least consulted us ;-D
>
> We subclass very few of Apple's classes, only NSObject actually, so we should be okay.
which takes me back to the question I asked a few days back:
As I understand the Objective-C class structure, the root object as created in the runtime is Object and NSObject is a subclass of Object.
As I understood the old version of Swarm it separately subclassed Object, thus avoiding adopting NSObject protocols.
Am I correct to understand that your latest code creates the Swarm classes as subclasses of NSObject? Is this what the openstep build flag does?
Do the resulting Swarm objects understand both 'new' and 'create' instantiation methods? (I understand that mixing them is a quick way to a crash.) Would this mean that they are 'first class' Cocoa objects, but that one should never invoke a Cocoa method on a Swarm object even though introspection would show it as available?
IMHO this all needs some documentation. Maybe Nima might have his Wiki pages as part of the Swarm Wiki so that they might form a basis for such documentation.
Cheers
Bill
PS The use of underscore for private methods is in GNUstep coding standards in June 1996 (http://www.gnustep.org/resources/documentation/Developer/CodingStandards/coding-standards.pdf). So I expect Swarm just adopted it like all other Objective-C coders, before anyone thought too hard about the implications.