Objective-C - NSArray und Für die loop-Struktur
Arbeit wurde in der Weise, zu lernen, Objective C, aber ich bin jetzt und das hat mich verrückt wurde.
Dies ist mein code:
i=0;
for (i=0;[photoList count]; i++) {
NSLog(@"%i",i);
NSLog(@"%@",[photoList objectAtIndex:i]);
NSString *fileName = [photoList objectAtIndex:i];
sendImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileName ofType:nil]];
UIImageWriteToSavedPhotosAlbum(sendImage,self,@selector(savedPhotoImage:didFinishSavingWithError:contextInfo:),NULL);}
photoList ist nur ein NSArray wie so, außer mit 24 Objekte:
NSArray* photoList = [NSArray arrayWithObjects:@"Photo 1.jpg",
@"Photo 2.jpg",
@"Photo 3.jpg",
@"Photo 4.jpg",nil];
Es funktioniert... Es kopiert die Fotos in der camera roll... und stürzt dann ab mit
2010-07-24 19:34:36.116 iCardz2go Poindexter[29662:207] * Terminating app due to uncaught exception 'NSRangeException', reason: '* -[NSArray objectAtIndex:]: index-24-jenseits der Grenzen [0 .. 23]'
Ich habe versucht, verschiedene Konfigurationen wie
for (i=0;1<23; i++)
nur zu bekommen
2010-07-24 19:51:01.017 iCardz2go Poindexter[29908:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSInvocation invocationWithMethodSignature:]: Signatur der Methode argument nicht nil'
So ist es das Lesen der null-und der übergabe.
Ich weiß, sein gehen zu sein etwas echtes einfach, dass ich vergessen habe. Warum nicht Sie springen aus der Schleife auf Bild 23 (der Graf)?
Ihre Hilfe ist sehr geschätzt!
P
Sie sollten tackle ein tutorial in der Programmiersprache C, da wird es hoffentlich Abdeckung Konstrukte, wie etwa Schleifen. Objective-C ist eine ganz dünne Schicht auf C, so dass Sie sich selbst vertraut mit C wird Ihnen helfen, an Griffe mit Objective-C auch.
Marcelos - Weil ich dachte, ein NSArray von 0 an gezählt... nicht wahr?
Gültige Indizes von 0 bis 23, aber der Graf ist immer noch 24.
InformationsquelleAutor Paul Sommers | 2010-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
For-Schleifen in C und Objective-C wie folgt Aussehen:
initialization
ist, wo Sie die Schleife, es ist, wo Sie es sagen, was mit zu beginnen.condition
getestet, die für jede iteration, einschließlich der ersten, wenn diecondition
true ergibt, wird der Körper der Schleife ausgeführt wird. Am Ende jeder iterationincrement
ausgewertet.Also:
Druckt die zahlen von 0 bis 9. Was Sie wahrscheinlich wollen für deins:
Hinweis: die Zuordnung der
count
außerhalb der Schleife; es ist einfach eine Optimierung, so dass der loop nicht haben, senden Sie eine zusätzliche Nachricht, die für jede iteration (Sie könnte genauso gut tuni < [photoList count]
.)Hilft das?
Hat deine Klasse Antworten tatsächlich zu
-savedPhotoImage:didFinishSavingWithError:contextInfo:
? Sie müssen sicherstellen, dass die umgesetzt werden.DANKE!!! Das war das problem! Ich erinnere mich, es zu kommentieren, und testet... etwas... ein paar Tage her, und niedrige und siehe da es war noch auskommentiert!!!! Aber da war ich mit dem spielen NSArray für die erste Zeit, und immer echte fortgeschrittene (LOL!) indem es in einer Schleife, die ich automatisch davon ausgegangen, das problem war da. Ihre Hilfe und die von oben ist enorm geschätzt von mir und anderen newbies. In der Regel finde ich die Antwort einfach per Suche, aber dies hatte mich ratlos. Vielen Dank Euch allen! Hoffentlich kann ich eines Tages das gleiche tun für die Menschen.
InformationsquelleAutor Jonathan Grynspan
Warum versuchen Sie nicht, schnell enumeration?
Das heißt mit der Schleife (und es gibt einen Fehler im code oben gedruckt, es ist tatsächlich i < [photoList count]... geht es durch die Schleife, schreibt die Bilder, stürzt dann ab.
InformationsquelleAutor Eimantas
Beide for-Schleife Bedingungen —
[photoList count]
und1<23
— immer bewerten zutrue
. Versucheni < [photoList count]
. Besser noch, verwenden Sie @Eimantas ' s Antwort.Mit i<=[photoList count] es läuft und stürzt dann ab mit: Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectAtIndex:]: index-24-jenseits der Grenzen [0 .. 23]' Hat, die helfen, die engen das problem?
InformationsquelleAutor Marcelo Cantos
Aus dem code:
Den Zustand
[photoList count]
ist immer wahr.Ich hatte nicht Lesen Sie die ganze Diskussion, obwohl.
InformationsquelleAutor Geri
Ändern Sie Ihre Anweisung for(i=0; i<[photoList count]; i++)
InformationsquelleAutor Ohmy