Zunächst ein kleiner Hintergrund. Ich bin ein .NET-Entwickler (C #) und habe über 5 Jahre Erfahrung sowohl in der Webentwicklung als auch in Desktopanwendungen. Ich wollte mich schon seit einiger Zeit mit der iPhone-Entwicklung befassen, wurde aber aus dem einen oder anderen Grund immer von der Seite verfolgt. Ich habe endlich ein potenzielles Projekt am Horizont und werde jetzt alles daran setzen, dieses Zeug zu lernen.
Meine Frage lautet: Ich habe seit meiner Schulzeit keine C / C ++ - Programmierung mehr durchgeführt und lebe seitdem in verwaltetem Land. Wie viel Wissen wird benötigt, um als iOS-Entwickler erfolgreich zu sein? Natürlich muss ich mir der Speicherverwaltung bewusst sein (obwohl es unter iOS 5 anscheinend etwas namens ARC gibt, das mir das Leben erleichtern sollte), aber was noch? Ich spreche nicht nur über die C-API (um beispielsweise die Sünde einer Zahl zu ermitteln, nenne ich die Funktion sin ()), dafür ist Google gedacht. Ich spreche von grundlegenden C / C ++ - Redewendungen, die der durchschnittliche C # -Entwickler nicht kennt.
Antworten:
Mach dir keine Sorgen. Wenn Sie genug C kennen, um Funktionsaufrufe schreiben, arithmetische Ausdrücke verstehen und schreiben sowie mit Zeigern umgehen zu können, ist das wahrscheinlich in Ordnung. Natürlich müssen Sie noch Objective-C lernen, aber ein Großteil des Codes, den Sie schreiben, ist mehr Objective-C als einfaches altes C. Wenn Sie sich an den Objective-C-Stil gewöhnen und Cocoa Touch lernen, wird viel mehr verbraucht Ihrer Zeit als C. auffrischen.
Normalerweise sage ich Leuten, die bei Null anfangen, C zu lernen, bevor sie zu Objective-C springen. Ich stehe zu diesem Rat: Wenn Sie C lernen, lernen Sie Grundkenntnisse, die Sie benötigen, um in Objective-C effektiv arbeiten zu können. Sie müssen wissen, was eine Funktion ist, wie Steuerstrukturen wie Schleifen und bedingte Anweisungen verwendet werden, wie die verschiedenen grundlegenden Datentypen funktionieren, was eine Struktur ist und so weiter. Und da C in Objective-C ein faires Spiel ist, sind Sie umso besser darauf vorbereitet, Code zu verstehen, auf den Sie möglicherweise stoßen, je mehr C Sie kennen. Trotzdem werden viele Aufgaben in Objective-C anders ausgeführt, sodass Standard-C-Idiome nicht unbedingt Standard-Objective-C-Idiome sind. NSString und NSArray ersetzen Arrays im C-Stil. Zeiger sind allgegenwärtig, werden jedoch hauptsächlich verwendet, um auf Objekte zu verweisen - Zeigerarithmetik kommt nicht sehr oft vor.
Das gleiche gilt für C ++ ... Sie werden nicht viel C ++ benötigen, um in Objective-C gut zurechtzukommen. Irgendwann in der Zukunft müssen Sie möglicherweise Ihr C ++ - Wissen erweitern, um vorhandenen C ++ - Code in eine App zu integrieren. Zu diesem Zeitpunkt müssen Sie möglicherweise einige Zeit mit Lernen verbringen, aber lassen Sie nicht zu, dass mangelndes C ++ - Wissen aufhört Sie können sich nicht in der iOS-Programmierung versuchen.
quelle
Keine vollständige Antwort, aber Sie müssen dieses PDF lesen, wenn Sie Objective-C lernen möchten.
Es ist wirklich einfach zu lesen, wenn Sie lesen möchten, um Sprachen zu lernen, anstatt sich Beispielcode oder Beispiele anzusehen. Solange Sie ein Verständnis für OOP haben, ist das Abholen von Obj-C ein reibungsloses Segeln. Das, was mich am Erlernen des iPhone-Entwicklers wirklich abschreckt, ist die Verwendung von Xcode, was eine andere Geschichte ist ...
Apple Obj-C
quelle
Hängt davon ab.
Eine Programmiersprachen-Teilmenge (manchmal als "die guten Teile" bezeichnet) funktioniert normalerweise einwandfrei, wenn Ihre Ziele die Grenzen dieser Teilmenge nicht überschreiten.
Wenn Sie einfache UI-Aufgaben ausführen möchten (die Aufgaben, die Sie in einer Web-App ausführen können ), sich an die Datentypen Cocoa und Foundation halten und fehlerfreien Code schreiben möchten , können Sie wahrscheinlich nur sehr wenig über das C unter Objective C wissen .
Wenn Sie jedoch iOS-Audio-, Video-, Bild- (usw.) verarbeiten oder analysieren möchten, befinden sich die APIs und der Referenzbeispielcode, mit denen Sie wahrscheinlich arbeiten, meist in C und sind C-idiomatisch.
Ziel C ist jedoch eine strikte Obermenge von C, sodass sich Tippfehler und Fehler auf jeder Ebene der Sprachumgebung manifestieren können. Wenn Ihr Code Fehler aufweist, müssen Sie möglicherweise die C-Zeiger, den Datentyp und die Heap-Ebene genau kennen, um einen Absturz zu analysieren und zu debuggen. Ziel C wird nicht "verwaltet" und somit kann man ein knorriges Durcheinander im Speicher entweder als Zweck oder als vollständiger Unfall erzeugen.
quelle