Ich lerne nur Ziel-C und frage mich, warum der folgende Code zu einem Fehler führt?Warum können Objective-C-Objekte in einer Schleife deklariert werden, aber nicht in der Reihenfolge?
In diesem Fall gibt die zweite Zeile einen Fehler, der besagt, dass der Zeiger "p" bereits definiert wurde.
Das macht für mich Sinn; Wenn es jedoch zutrifft, dass ein Zeiger nicht neu definiert werden kann, warum funktioniert dann der folgende Code?
for(int i = 0; i<10; i+=1) {
Person *p = [[Person alloc] init];
}
Als ich gebe dieses in XCode gibt keine Fehler, und es kompiliert und läuft gut. In diesem Fall würde ich erwarten, dass die Schleife den Zeiger "p" einfach neu definiert, ähnlich wie sie sequenziell deklariert werden, aber das ist nicht der Fall.
Hat jemand eine Erklärung dafür, warum das so ist?
Heiße Licks .... nicht hilfreich! – Topher
Warum stimmt der down über die Frage ab. Es ist selten, dass ein neuer Benutzer heutzutage eine anständige Frage stellt. Dieses Verhalten sollte belohnt werden. Diese Frage ist klar, es hat relevanten Code. Was möchten Sie sonst noch? – rmaddy
Echo @rmaddy: Fragen, die ein "Neuling" -Unverständnis zeigen, sind keine schlechten Fragen, solange sie klar formuliert sind. Dies ist eine gut geschriebene Frage und zeigt einige Bemühungen, das Problem zu verstehen. – rickster