Pregunta

My Nstreecontroller está configurando los atributos de los padres de datos principales, pero no los atributos de los niños.

Tengo un modelo de datos básicos como este

Item
    title (string)
    isLeaf (boolean,readonly)
    parent -> Group (inverse children)

Group (parent entity Item)
    children -> Item (inverse parent)

Leaf (parent entity Item)

Luego lo estoy mostrando con nsoutlineview y usando un NSTreecontroller.Utilizo el método - [Nstreecontontroller insertObject: atarrangedobjectindexpath:] Para intentar insertar las hojas, la propiedad principal de las hojas se establece correctamente, pero el grupo principal. La propiedad de los niños permanece establecida en NIL.

Cuando ejecuto el proyecto obtengo la siguiente advertencia en la consola

Warning: <NSTreeController: 0x7fcd93c19d20>[object class: NSMutableDictionary] childrenKeyPath cannot be nil. To eliminate this log message, set the childrenKeyPath attribute in Interface Builder

Aunque Kidskeypath se establece en el constructor de la interfaz y por qué está utilizando NSMutabledictionary cuando tengo un Subclass SavedItem, SavedGroup y Savedleaf.He descargado un par de ejemplos, pero no puedo ver lo que están haciendo, no lo soy.

¿Fue útil?

Solución

La solución para otros, es que estaba tratando de ser inteligente y en lugar de definir la propiedad Isoleaf en la definición de datos básicos real.Intentarle un código duro en la implementación como devolviéndome VERDADERO o FALSO Dependiendo de si fue Grupo o HABITA , por alguna razón Nstreecontontroller no le gusta esto, incluso si también lo defina en la clase base.He anulado el método despierta> strong> y lo configura allí.

también de interés es que nstreecontroller tampoco le gusta si define la propiedad niños en la clase base para no hacer nada / devolución nil (Es decir, el grupo Grupo puede anularlo), se guardarán entidades para niños a las entidades, pero no se mostrarán.Esto es algo que hice en tratar de resolver mi problema inicial, pensé que era algo que la gente le gustaría saber.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top