Plattformsoberoende bas i C++, resten i Objective-C... inkl. Cocoa Bindings?

Tråden skapades och har fått 6 svar. Det senaste inlägget skrevs .
1

Jag har stött på ett litet problem

Jag utvecklar en enkel applikation som en vacker dag kommer att portas till Windows/Linux/etc. Därför vill jag skriva grundkoden i C++ så att den lätt kan flyttas över till en annan plattform utan större problem. Nu undrar jag om jag kan kombinera Cocoas s.k. bindings med min existerande kod...

Låt oss ta ett enkelt exempel; jag har en klass (C++) för en triangel. Denna har en storlek, position samt en färg. Den här även en medlemsfunktion som ritar ut triangeln (m.h.a. OpenGL). Jag har även en instans av en scen. Scenen innehåller en lista (eller vektor eller liknande) med objekt (t.ex. trianglar) som den går igenom, och då ropar på vardera objekts draw-funktion. Även scenklassen är skriven i C++.

OM jag hade skrivit ovanstående klasser i Objective-C så skulle jag lätt kunna använda bindings för att instansiera nya objekt i min scen m.h.a. t.ex. en NSArrayController. En sådan skulle lätt synka modellen i datan mot gränssnittets kontroller.

Om jag nu istället vill synka data mellan gränssnittet och en datamodell skriven i C++, går det då på något sätt att använda bindings? Det hade sparat sjukligt mycket tid!

Tacksam för svar!

  • Medlem
  • Göteborg
  • 2006-09-19 13:26

Jag löste ett liknande problem med Objective-C++.

Ursprungligen av desh:

Jag löste ett liknande problem med Objective-C++.

Ah, så det finns någon sorts möjlig lösning iaf

Är det för mycket begärt att be dig förklara lite mer ingående, eller möjligtvis t.o.m. få se lite kod för att få en hum om hur man går tillväga?

  • Medlem
  • Göteborg
  • 2006-09-19 13:39

Jag önskar jag hade haft tid att förklara, men om jag inte minns fel tog jag hjälp av denna sida: http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_4_section_10.html

Ett annat tips för att lösa cross-platform-grejen med BARA C++ är att använda wxWidgets. Sjukt smidigt.

Ursprungligen av desh:

Jag önskar jag hade haft tid att förklara, men om jag inte minns fel tog jag hjälp av denna sida: http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_4_section_10.html

Ett annat tips för att lösa cross-platform-grejen med BARA C++ är att använda wxWidgets. Sjukt smidigt.

Jo, den sidan har jag tittat på (men det var längesen, tack för tipset). Det som jag fortfarande klurar på är kopplingen mot Cocoas bindings, och hur jag ska sköta abstraktionen där. Har inte hittat några sådana exempel ännu...

  • Medlem
  • Simrishamn
  • 2006-09-20 21:28

Kan du inte bara göra någon slags Objective-C-wrapper för dina C++-klasser?

Jo, det har jag gjort. Funkar prima... men det är synkroniseringen mellan arrayen av objekt (Objective-C wrapperobjekt) och en vektor a la C++ som är lite meckig. Har gjort lite progress, återkommer om jag får det att funka

1
Bevaka tråden