Unrecognized Selector Geschickt Instanz [NSCFString subarrayWithRange:]
Ich habe folgenden code, der produziert diesen Fehler. Ich verstehe nicht, warum die subarrayWithRange Nachricht wird gesendet an einen string? Wenn es klar ist das ein array?
static const int kItemsPerView = 20;
NSRange rangeForView = NSMakeRange( page * kItemsPerView, kItemsPerView );
NSMutableArray *temp = [[APP_DELEGATE keysArray] mutableCopyWithZone:NULL];
NSArray *itemsForView = [temp subarrayWithRange:rangeForView];
for (int loopCounter = 0;loopCounter < r*c;loopCounter++){
NSLog(@"%i: %@ ", loopCounter, [itemsForView objectAtIndex:loopCounter]);
}
Fehler:
-[NSCFString subarrayWithRange:]: unrecognized selector sent to instance 0x6b071a0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: [NSCFString subarrayWithRange:]:
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Arten von Fehlern sind in der Regel Speicher-management-Bezug. Im wesentlichen, Sie senden eine Nachricht an eine Adresse, die jetzt besetzt durch ein anderes Objekt, weil der Vormieter hat unerwartet verschwunden. Da dieser Adressraum besetzt werden könnte durch etwas, das Sie nur zufällig zu sein, fragt einen NSCFString etwas, auf das Sie nicht reagieren.
Wenn Sie anhalten, den debugger direkt nach dem erstellen der temp-array, was sehen Sie zugeordnet temp? Ich vermute, etwas stimmt nicht ganz mit was auch immer-keysArray gibt. Möchten Sie vielleicht zu prüfen, wie der Speicher behandelt, was auch immer das ist, soll zurückkehren. Von den Namen, ich vermute, dass Ihr app-Delegierte hat ein array mit dem Namen "keysArray" als Instanz-variable. Vielleicht ist das nicht richtig beibehalten, wenn es erstellt oder zugewiesen?
temp
ist ein array von 80 Saiten, debug-tooltip zeigt immer nur 10 Einträge aber Nicht sicher, ob das nur Xcode oder nicht? Sie sind richtig keysArray ist eine Instanz-variable in meine App Delegieren, eine Eigenschaft, definiert als (nonatomic, retain) und dann synthetisiert und zugewiesen, mit eine bequeme MethodearrayWithContentsOfFile
. Ich brauche nicht zu behalten, es manuell zu tun ich?[[NSArray alloc] initWithContentsOfFile:@"somepath"]
statt.Also musste ich diese ein. Habe ich etwas blöd. Ich wies die UITextView, um eine Zeichenfolge anstelle der text-Eigenschaft. ie:
statt: