Der steinige Start zur App-Entwicklung!

Bei der IOS Entwicklung brauchst du dich um die Header in diesem Fall nicht zu kümmern, da dir ein Template angelegt wird, wo es schon enthalten ist. Und da wäre es

#import <UIKit/UIKit.h>

was alles einschliesst was du normalerweise brauchst. Das Import ist Objective-C. Aber sonst hast du recht, iostream ist vergleichbar mit stdio.
 
Anbetracht dessen, da ich gerade von "C" "scanf" und "printf" kennenlernen durfte, wollte ich auch dazu fragen, ob diese im Grunde genau das selbe bedeuten wie bei "C++" "char" und "cin"?

Und könnte man diese eben zum Beispiel bei der i.OS Programmierung mit Objectiv-C variieren? So das ich zum einen als Beispiel, als Ausgabestream: "char" benutze und als Eingabestream "scanf"?

Freue mich auf eure Antworten.
 
Es heisst cout, nicht char :)

Nein, bei IOS gibt es sowas nicht. Hier wird mit Methode gearbeitet, die z.B. in einem Textfeld einen Text reinschreiben: [meinLabel setText:mad:"Hallo"] oder mit einer anderen Schreibweise meinLabel.text=@"Hallo";
Das steht aber alles in den IOS Büchern, mach dir da keine Gedanken.
 
Anbetracht dessen, da ich gerade von "C" "scanf" und "printf" kennenlernen durfte, wollte ich auch dazu fragen, ob diese im Grunde genau das selbe bedeuten wie bei "C++" "char" und "cin"?

Und könnte man diese eben zum Beispiel bei der i.OS Programmierung mit Objectiv-C variieren? So das ich zum einen als Beispiel, als Ausgabestream: "char" benutze und als Eingabestream "scanf"?

Freue mich auf eure Antworten.

printf ist nicht std::cout, include ist nicht import, 'include <xy>' ist nicht 'include "xy"'.
Hier gibt es Unterschiede, manchmal subtil, manchmal gravierend. Der Part, der dich verwirrt, ist vermutlich die Tatsache, dass du in z.B. C++ auch die "Sachen" aus C nutzen kannst. Gut, da musst du halt irgendwie durch.

Bitte beachte auch, dass sich die Programmierstile in diesen drei Sprachen teils grundlegend unterscheiden. Während C einem streng imperativen Stil folgt, gibt es mit C++ die Objektorientierung, genauso wie in Objective-C auch, nur funktioniert sie hier nochmal... "anders".


Bezüglich den Headern, schau sie dir doch einfach an:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/iostream

Die Pfade funktionieren, sofern du Xcode auf 10.9 installiert hast. Ansonsten kannst du sie im Terminal selbst suchen, ich hab dafür auch nur das genutzt:
find /Applications/Xcode.app -iname "*stdio*" | grep 10.9 | grep -v documentation | grep include
find /Applications/Xcode.app -iname "*iostream*" | grep 10.9 | grep -v documentation | grep include

Wo wir schon beim Terminal sind: du kannst dir mittels `man` übrigens auch Einträge zu C Headers und Funktionen aufrufen, z.B. `man stdio`.
 
Bitte beachte auch, dass sich die Programmierstile in diesen drei Sprachen teils grundlegend unterscheiden. Während C einem streng imperativen Stil folgt, gibt es mit C++ die Objektorientierung, genauso wie in Objective-C auch, nur funktioniert sie hier nochmal... "anders".

Weshalb ich mich aber frage, wieso muss ich dann "C" und sollte "C++" auch beherrschen, obwohl ich zum eigentlichen gebrauch "Objectiv-C" benötige, sowie Cocoa.

Einfach nur als Grundlage, da es aus "C" stammt? Oder hat dies einen tieferen Grund.
Benötige ich den konkret "C" oder "C++" in der späteren i.OS Entwicklung, wenn ich hier eigentlich lese:

bei IOS gibt es sowas nicht. Hier wird mit Methode gearbeitet, die z.B. in einem Textfeld einen Text reinschreiben: [meinLabel setText:mad:"Hallo"] oder mit einer anderen Schreibweise meinLabel.text=@"Hallo";
Das steht aber alles in den IOS Büchern, mach dir da keine Gedanken.


Zudem habe ich gerade diese beiden:
find /Applications/Xcode.app -iname "*stdio*" | grep 10.9 | grep -v documentation | grep include
find /Applications/Xcode.app -iname "*iostream*" | grep 10.9 | grep -v documentation | grep include
im Terminal eingegeben, aber es kam eigentlich nichts konkretes raus, was ich zumindest erwartet hatte.
 
Einfach nur als Grundlage, da es aus "C" stammt? Oder hat dies einen tieferen Grund.

da ist halt jede menge C syntax drin, ob es nun die schleifen usw sind.
nur allozierst/instantiierst du halt die objekte anders als bei C++, das memory management ist halt auch anders durch die runtime (stichwort retain/release).
 
Weshalb ich mich aber frage, wieso muss ich dann "C" und sollte "C++" auch beherrschen, obwohl ich zum eigentlichen gebrauch "Objectiv-C" benötige, sowie Cocoa.

Einfach nur als Grundlage, da es aus "C" stammt? Oder hat dies einen tieferen Grund.
Musst du nicht und nein, hat es nicht. Von C++ hat man dir ja sogar direkt abgeraten, weil einfach unnötig (zumindest vorerst).
C kann problemlos "inmitten" Objective-C verwendet werden und es kommt auch vor. Objective-C ist eine Erweiterung von C. Streng genommen benötigst du es nicht, aber die Wahrscheinlichkeit, dass du über C-Teile stolperst, existiert. Unter anderem dafür empfehlen sich mMn Grundkenntnisse, aber mehr auch nicht. Ein ganzes Buch würde ich dafür nicht durch machen (gut, kommt wohl auf das Buch an).
Vielleicht verwirrt dich auch das: nur weil Objective-C eine Erweiterung von C ist, heißt das nicht, dass du C kannst, wenn du Objective-C gelernt hast.

Zudem habe ich gerade diese beiden:

im Terminal eingegeben, aber es kam eigentlich nichts konkretes raus, was ich zumindest erwartet hatte.
Was kam denn raus? Unter den von mir genannten Bedingungen sollten Pfade erscheinen.
 
Es reicht in C die Themen Variablen, Schleifen, Zuweisungen, Datentypen, Vergleiche und Rechenoperationen zu kennen. Die Dinge brauchst du in Objective-C sowieso, das sind grundlegende Sprachelemente. Bibliotheksfunktionen wie printf, scanf und hunderte weitere brauchst du nicht, weil du das mit den IOS Bibliotheken (Cocoa Touch) machst.
 
Bei: --> find /Applications/Xcode.app -iname "*iostream*" | grep 10.9 | grep -v documentation | grep include kommt das..
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/backward/iostream.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/iostream
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/php/Zend/zend_istdiostream.h
Wie müsste ich weiter vorgehen, ich spiele mich gelegentlich nicht mit dem Terminal. :d


by the way:
im Moment mache ich mit meinem Lehrbuch von "C" folgende Übung:

Code:
#include <stdio.h>


int main(void) {
    float wkursF  = 1.4906;
    float betragF = 100100.12;

    double wkursD  = 1.4906;
    double betragD = 100100.12;

    printf("[float] : %f Dollar = %f Euro \n",
           betragF, betragF/wkursF );
    printf("[float] : %lf Dollar = %lf Euro\n",
           betragD, betragD/wkursD );
    return 0;
}

Aber aus irgendeinem Grund heißt es, das dieser Falsch sei.

Ich habe es auch mal mit dem Muster vom Buch verglichen und konnte keine Fehler feststellen.
Würde mich jetzt gerne von euch interessieren.


back to thread:
also lerne ich jetzt einfach nur mal von "C" und "C++" das Grundlagenbuch grob (?) durch und danach befasse ich mich gleich mit Objectiv-C und Cocoa, damit ich was voran bringen kann, womit ich ans Ziel komme?
 
Es reicht in C die Themen Variablen, Schleifen, Zuweisungen, Datentypen, Vergleiche und Rechenoperationen zu kennen. Die Dinge brauchst du in Objective-C sowieso, das sind grundlegende Sprachelemente. Bibliotheksfunktionen wie printf, scanf und hunderte weitere brauchst du nicht, weil du das mit den IOS Bibliotheken (Cocoa Touch) machst.
Ich würde mir eigentlich schon noch Dinge wie structs anschauen.

Bei: --> find /Applications/Xcode.app -iname "*iostream*" | grep 10.9 | grep -v documentation | grep include kommt das..

Wie müsste ich weiter vorgehen, ich spiele mich gelegentlich nicht mit dem Terminal. :d
Das kommt drauf an was du machen willst. Was du siehst ist eine Liste an Ergebnissen. Öffnen? Dann nutze beispielsweise
open /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/iostream


Und bezüglich deinem Problem: so funktioniert das nicht. Niemand hier kann hellsehen. Ein "er sagt es ist falsch" ist nichts mit dem man arbeiten kann. Der Kompiler hat dir nicht gesagt, dass irgendetwas falsch sei, er gab dir eine detaillierte Fehlermeldung.
 
ihr habt ja alle schon längere Erfahrung in der Programmierszene.
Es ist klar das es nicht von heute auf morgen geht, das man das Gebiet beherrscht, aber wie lange schätzt ihr, braucht man in etwa um alleine "C" zu beherrschen.
Ich sag jetzt mal die Grundlagen, die wichtigsten Dinge die man einfach wissen und später beherrschen muss.

Ich lerne ca. 1 Stunde täglich +/- im Moment die Grundlagen von "C".

Und ist es normal, das man manchmal bestimmte Syntax nicht auf anhieb, selbst nach drei Tagen noch nicht ganz versteht?
Eigentlich bin ich ein relativ guter Lerner, jedoch tue ich mir teil, teils schwer im erlernen bzw. im folgen der jeweiligen Anweisungsgänge.
Manchmal wiederum, macht es ohne Probleme beim ersten mal "klick" und man versteht schon, was gemeint ist und wie weiter vorzugehen ist.
 
Also zumindest für mich ist das nur sehr schwer zu sagen, ich denke da sind die Menschen auch einfach sehr verschieden.
Persönlich halte ich 1 Stunde aber nicht für sonderlich viel, aber ich weiß auch nicht was du dir vorstellst/planst.

Beim Programmieren (lernen) geht es mMn zu 98% um das "machen": schreib Code, so viel es geht. Bastel Programme am laufenden Band, immer etwas größer, komplexer, schwieriger. Natürlich widmet man sich hier Problemstellungen, mit denen man noch keine (oder kaum) Erfahrung hat.
Selbst bin ich kein großer C++ Profi, ich habe einfach noch nicht viel damit gemacht und das letzte Projekt ist auch schon ein Weilchen her. Damals ging es um einen Hostbot für ein Spiel, an dem ich gearbeitet hab und (akkumuliert) auch ein paar tausend sloc zusammen bekam. Ich würde behaupten, in diesem "Umfeld", auf diesem "Level", flüssig genug zu sein, um weitere Projekte dieser Art problemlos angehen zu können. Wenn ich mir jetzt aber komplexeren Code von CGAL anschau, dann muss ich z.T. auch aussteigen. Das ist eine Bibliothek für numerische Lösungen geometrische Probleme, die massiv mit Templates arbeitet und auch versucht mittels diesen Berechnungen in die Compilezeit zu verlagern. "Das" ist ein C++, bei dem bin ich definitiv nicht so flüssig. :crack:
Es ist alles eine Frage der Perspektive.

Und ist es normal, das man manchmal bestimmte Syntax nicht auf anhieb, selbst nach drei Tagen noch nicht ganz versteht?
Was gibt es bei Syntax zu verstehen? Die musst du nehmen wie sie ist. Jetzt mal ganz stark vereinfacht, macht der Kompiler nacher ja nur "ah, die Zeile fängt mit diesen Buchstaben an an -> dann muss es jetzt so und so weiter gehen". Irgendjemand sagte ihm mal, wie es nach den Buchstaben xy weiter zu gehen hat und an diese Regeln musst du dich nunmal halten.
Da ist keine höhere Mathematik dahinter, da hat einfach jemand eine Grammatik definiert und an diese musst du dich beim Programmieren halten.
 
Update:
Meines Empfindens nach, mache ich stolze Fortschritte im Grundlagenkurs C. Bin im Moment beim Thema "Verzweigungen" bezüglich des "if".

Eine neue Frage die mich interessiert ist:
Wenn ich eine App im AppStore veröffentliche, ist diese dann global oder nur innerhalb des deutschen AppStores?
Bräuchte ich einen extra US-Account oder geht das so auch reibungslos über die Bühne?
 
Wenn du es nicht änderst ist es global. Wenn die App aber nur in Deutsch ist, solltest du sie auf die deutschsprachigen Länder beschränken. Du kannst für jedes Land wählen, ob es dort erscheint. Du brauchst nur einen normalen iTunes-Account.
 
Sofern du des Englischen einigermassen mächtig bist (nebenher eine gute Methode, diesbezügliche Kenntnisse zu verfeinern):

Der iTunes U Podcast: Developing iOS 7 Apps for iPhone and iPad.

Absolut genialer Kurs (Stanford University). Der Lektor ist Paul Hegarty, ein Apple Urgestein und Weggefährte von Steve Jobs aus NeXT - Zeiten. Sehr empfehlenswert (Hausübungen, Slides und eine Webseite zum Kurs gibts auch)
 
für einen groben Überblick ist der Stanford "kurs" ok, wirklich tiefgang hat der aber nicht
 
Apple hat gerade überraschend die neue Programmiersprache Swift vorgestellt. Das eBook gibt's kostenlos zum Download. Werde mir das mal ansehen.
 
gerade ?
das schon 2 tage her
 
Ja gut, für mich ist das gerade noch "gerade". :)
 
Zurück
Oben Unten