PHP -> Objective C (reageerders verdienen geld...;)) discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Zoals ik in dit topic al vertelde ben ik hard bezig om het kwartje te laten vallen. Ik heb zelf een hoog PHP niveau, maar ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#1
|
|||
|
|||
PHP -> Objective C (reageerders verdienen geld...;))
Zoals ik in dit topic al vertelde ben ik hard bezig om het kwartje te laten vallen.
Ik heb zelf een hoog PHP niveau, maar Objective C is toch even andere koek. Toch had ik net even een "Ohhhh, dat betekent het!" momentje toen ik me realiseerde dat: Objective C: Code:
[myObj doSomething]; PHP: Code:
$myObj->doSomething(); Wie kan er nog meer van dit soort voorbeelden noemen? Verdien geld met je hulp: Om de echte diehard programmeurs hier te motiveren hier hun input te leveren, beloof ik bij deze plechtig hun app aan te schaffen wanneer ze in dit topic ook ff hun appStore App noemen... (mits deze app uiteraard geen exorbitante prijs heeft... ) Laatst gewijzigd door MichMich; 21-03-09 om 19:16. Reden: typo |
|
|
Gesponsorde links (verdwijnt na registratie)
|
#2
|
||||
|
||||
haha nou ik kom ook van PHP af (hoog nivo ook) maar Objective-C is wel ff andere koek.
Ik ben eigenlijk PHP dit keer ECHT gaan zien als een ongelooflijk luie taal. String declareren? nah! Int/float? Nah, gewoon erinzetten! PHP vogelt het zich wel uit. Ik ben zelf handmatig het volgende aan het 'omzetten': $mijnClass = new deClass; $deVar = $mijnClass->getWaarde(); lijkt simpel, is het ook. zelfs in Obj-C lukt het me om een zelfstandige losstaand class-file te includen (bijvoorbeeld een aparte .h en .m-file met een class met wat methodes) en die include ik weer in bijvoorbeeld een viewController.m, instantieer hem zoals hierboven,maar ergens doe ik iets fout.... de debugger toont dat de waarde die ik in een methode zet (of een NSLog()) wordt niet getoond, terwijl ik de methodes na instantiering (is dat een woord?) wel kan aanroepen (krijg in ieder geval geen debug-error en alles gaat door). Ergens zie ik iets over het hoofd, maar ook daar kom ik wel uit. EDIT: gevonden... hoe dom kun je zijn om malorkClass *malork = [MalorkClass init] te doen ipv malorkClass *malork = [[malorkClass alloc] init]; memorymanagement!! Ik haat PHP op dit vlak... die maakt het te makkelijk... Ik snap je punt though; ik dacht 'ik spring wel even in' maar dat was toch lastiger. Waar ik vooral moeite mee heb is om de luie PHP-manier af te leren en ik denk dat ik ook teveel tegelijk wil proberen, of denk dat het anders werkt dan het feitelijk doet. Laatst gewijzigd door Malork; 22-03-09 om 03:07. |
#3
|
|||
|
|||
Exact, het is echt heel anders denken. Maar toch is een OOP PHP basis best handig. Je snapt wat classes zijn en dat je een object 'iets kunt laten doen'.
Inmiddels is het kwartje wat betreft de classes (controllers) wel redelijk aan het vallen (maar hij heeft de grond nog niet geraakt ), ik snap alleen nog niet helemaal waar ik op een heldere manier de XIB files moet plaatsen. (Ik begrijp waar ze voor zijn maar heb nog een beetje het gevoel van 'ohw, jah, die xib file hoort geloof ik hierbij ....'); Anyway, ondanks dat ik snap dat er niet een PHP-Objective C 'vertaalwoordenboek' te maken is, denk ik dat er nog wel een paar voorbeelden genoem kunnen worden wat het iets duidelijker te maken. Bijvoorbeeld: PHP: Code:
class MYCLASS { function bla() { ... } ... } Objective C: Code:
@implementation MYCLASS { - (void) bla { ... } ... } Of sla ik de plank nu helemaal mis? |
#4
|
||||
|
||||
nee, klopt helemaal. in je header-file doe je, net zoals in PHP netjes verklaren welke instance variabelen je gaat gebruiken, de methodes die je gebruikt en welke waardes ze teruggeven. (de interface dus, zoals al beschreven). OOP-kennis is zeker aan te raden hoewel het in Obj.C voor mij af en toe net lijkt alsof het iets nieuws is.
Ja die nib-files zijn een verhaal apart; die worden geinstantieerd wanneer je class geladen wordt, meestal een viewcontroller dus. die wordt (meestal) geladen vanuit je delegate. Je kan ook handmatig een nib-file (nib-files is de oude benaming voor xib-files maar men refereert altijd naar 'nib') laden, dat gaat dan meer in de trant van: Citaat:
werken met views is ook een verhaal apart; ik moet zeggen ik ben er nu redelijk goed mee, maar 100% uit het hoofd lukt me nog niet, hoewel ik wel weet waar ik het moet zoeken wanneer het niet werkt ('Oh ja, moet hem wel even als subview aan mijn view toevoegen!'). |
#5
|
|||
|
|||
Precies! Dat heb ik hetzelfde... Helemaal uit mijn blote hoofd lukt het nog niet, maar fouten zijn wel zo opgespoord. Met andere woorden: De syntax is me nog niet helemaal eigen, maar de structuur wordt steeds duidelijker.
Ik moet zeggen dat je uitleg wel weer een extra verduidelijking biedt. Je bent duidelijk al een stapje verder. Misschien kan je daardoor ook in 'normaal nederlands' uitleggen wat een delegate nou precies doet. Ik heb wel een idee, maar zoek eigenlijk bevestiging... Bedankt voor je reacties zover! |
#6
|
||||
|
||||
Delegates zijn we inderdaad niet gewend in PHP, en ik moest er ook een tijdje over doen voor het kwartje valt, maar eigenlijk is het heel 'simpel'.
De meeste klasses in het framework hebben een aantal methodes; sommige van deze methodes worden automatisch aangeroepen wanneer een bepaalde actie uitgevoerd wordt. Deze delegate-methode kun je in je class overnemen waarna er je eigen acties aan toe kunt voegen. Een voorbeeld: Stel, je wil de gebruiker een vraag stellen via een zogenaamde alert-sheet. dit doe je door middel van: Citaat:
Wat is nu een delegate van deze UIAlertSheet? Nou, enkele delegate-methodes zijn: Citaat:
A: de methode "willPresentActionSheet" wordt aangeroepen door het systeem VOORDAT het UIAlertScreen getoond wordt. Je kan dus, door deze methode in je eigen class te implementeren, acties uitvoeren alvorens het scherm tevoorschijn komt. B: de methode "void)actionSheetUIActionSheet *)actionSheet clickedButtonAtIndexNSInteger)buttonIndex" wordt automatisch aangeroepen wanneer er een button is ingedrukt. Deze methodes hoef je niet te implementeren maar het is natuurlijk wel aan te raden om ze te gebruiken. Deze delegate-methodes vind je ook terug in XCode bij het frameworks ->UIKit.framework ->headers->UIAlert.h Delegate-methodes kun je dus overnemen / implementeren in je eigen classes door ze te 'over-erven'. Standaard zal er gekeken worden of de delegate-methode(s) voor de desbetreffende actie in je class-file staan en dan worden ze uitgevoerd... Hopelijk was het een beetje duidelijk...mocht het niet duidelijk zijn laat het me maar weten dan doe ik mijn best om het te verduidelijken. (zo, wat een zin haha!) |
#7
|
|||
|
|||
Belangrijk aan bovenstaande is dat je uiteraard ook in je eigen classes delegates kunt implementeren, om bepaalde zaken bijvoorbeeld event-driven uit te kunnen voeren in aparte threads.
|
#8
|
||||
|
||||
psies; volgens mij moet je dan die 'self' wijzigen in het object van je class. heb het nog niet geprobeerd maar zou theoretisch zo moeten werken.
|
#9
|
|||
|
|||
Het kwartje is nog niet helemaal gevallen, maar ik duik er even wat verder in... Bedankt voor jullie input zover!
|
#10
|
||||
|
||||
Ik ga binnenkort hetzelfde traject volgen: ik ken al OOP en MVC in PHP (nou ja, OOP en MVC zijn universeel), en wil ook Objective-C leren. Hoe lang hebben jullie erover gedaan om het een beetje te snappen? Dat je bijvoorbeeld een "Hello World"-applicatie kan maken?
|
#11
|
||||
|
||||
Citaat:
|
#12
|
|||
|
|||
Maar om vanaf daar door te gaan is juist de uitdaging!
|
#13
|
||||
|
||||
Ik moet zeggen dat "Hello, world" in Cocoa Touch nog redelijk complex was voor mij. Je moet weten hoe NIB files laden, hoe de NIB files worden gechained, wat File's Owner is en hoe controller classes erin worden geschoven bij het laden, hoe je connecties legt tussen controller en view en waarom, plus de nodige Objective-C syntax. Een hoop zal wel werken zonder veel van deze kennis, maar dan snap je ook niet goed wat er nou precies gebeurt.
|
#14
|
||||
|
||||
precies wat Thaurin zegt; een 'hello world' heb je al snel..maar er is geen bal aan als je niet weet wat je doet. In het begin vond ik veel van deze tutorials online met
"klik hier, tiep dat..sleep dat..." maar WAAROM werd er niet bijgezegd..zo leer je het dus niet. Het is vooral veel spelen; aanpassen en kijken wat er gebeurt.. small babysteps at a time... |
#15
|
|||
|
|||
Aanmelden als developper
Ik ben ook gevorderd in PHP, maar Objective-C is mij vooralsnog nog een raadsel.. Binnenkort maar eens een boek kopen!
|
#16
|
||||
|
||||
Ik kom ook van PHP ik heb echter geen mac, ik programmeer dus zonder xcode en zonder interfacebuilder. Ik programmeer dus ook zonder nib/xib files.
Objective-C zelf vind ik niet zo moeilijk, waar voor mij vooral het probleem ligt/lag is dat er nergens uitleg te vinden is waar ze geen gebruik maken van interfacebuilder! Ondertussen heb ik mezelf aangeleerd om de headerfiles te doorzoeken naar antwoorden (methods die mogelijk doe wat ik wil). En bij apple geven ze over die headerfiles meestal ook nog een korte uitleg. Laatst gewijzigd door libia; 28-04-09 om 10:56. Reden: Netjes maken (op iphone) |
#17
|
||||
|
||||
Header files doorlezen is zeker aan te raden, maar je kunt ook gewoon de class reference guides van Apple lezen. Daaruit krijg je meestal een aardig idee van hoe een class werkt. Verder kun je programmatisch alles doen wat IB ook kan en soms is het de enige mogelijkheid (als je tijdens run-time pas weet wat je toe wil voegen). Informatie over hoe dat moet zou dus gewoon te vinden moeten zijn.
|
#18
|
||||
|
||||
Citaat:
Als jij veel tuts kan vinden die bijvoorbeeld uitleggen hoe je in code een UITable maakt, dan vind ik dat knap |
#19
|
||||
|
||||
Hmmm, voordat de SDK werd gereleased was er natuurlijk al een levendige (unofficial) scene. Je moet die old-school gasten te pakken krijgen. Er is ook tenminste één boek uitgebracht over de open toolchain, genaamd iPhone Open Application Development van Jonathan A. Zdziarski. Probeer 't daar eens!
|
#20
|
||||
|
||||
Citaat:
en daarnaast houd ik niet zo van programmeer boeken |
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
Geld verdienen met je iPhone | Twister020 | iPhone Apps | 4 | 25-01-10 16:58 |
Geld verdienen | Gielk | iPhone Apps | 8 | 11-11-08 20:48 |
|
|