[Openmcl-devel] initforms in objc classes ?

Didier Verna didier at lrde.epita.fr
Thu Jan 31 02:08:54 PST 2008

       Hello again,

I can't figure out why my initforms don't seem to work in objc classes
(I saw some examples in the ocoa-ide directory so I assume it should
work). Suppose for instance that I have this class:

(defclass base-node (ns:ns-object)
  ((title :foreign-type :id
    :accessor title
      :initform #@"Untitled base node")
   (icon :foreign-type :id
    :accessor icon)
   (url-string :foreign-type :id
          :accessor url-string)
   (children :foreign-type :id
        :reader children ;; custom writer (see below)
             :initform (#/array ns:ns-array))
   (leafp :reader leafp ;; custom writer (see below)
     :initarg :leafp
       :initform nil))
  (:metaclass ns:+ns-object))

If I inspect an object created with (make-instance 'base-node) in Slime,
I get this:

#<BASE-NODE  #x30004211F95D>
Nil = #0=#<BASE-NODE <BaseNode: 0x14abe800> (#x14ABE800)>
Wrapper:  = #<CLASS-WRAPPER  #x3000420F6F2D>
Instance Slots = NIL
Leafp = NIL
Title = #<A Null Foreign Pointer>
Icon = #<A Null Foreign Pointer>
Url-String = #<A Null Foreign Pointer>
Children = #<A Null Foreign Pointer>

Underlying UVECTOR

in which you can see that the title and children slots are NULL. For the
title slot, I also tried (#/initWithString #@"bla") or just
(#/init ns:ns-string) in vain.

Please forgive me if this is too trivial; I'm quite new both to Cocoa
and the bridge... (and http://openmcl.clozure.com/Doc/index.html seems
to be down right now ;-)

Thank you !

Resistance is futile. You will be jazzimilated.

Didier Verna, didier at lrde.epita.fr, http://www.lrde.epita.fr/~didier

EPITA / LRDE, 14-16 rue Voltaire   Tel.+33 (0)1 44 08 01 85
94276 Le Kremlin-Bicêtre, France   Fax.+33 (0)1 53 14 59 22  didier at xemacs.org

More information about the Openmcl-devel mailing list