Warum bekomme ich in objective-c einen Integer to Pointer Conversion-Fehler?

8

Ich durchlaufe ein NSString-Objekt mit dem Namen previouslyDefinedNSString und überprüfe, ob die Ganzzahl, die den ASCII-Wert eines Buchstabens darstellt, in einem NSMutableSet namens mySetOfLettersASCIIValues enthalten ist, das ich zuvor mit NSIntegers gefüllt hatte:

%Vor%

Allerdings erhalte ich diesen Fehler innerhalb der Bedingung der IF-Anweisung.

%Vor%

Was bedeuten diese Fehler? Wie konvertiere ich in einen Objekttyp (welche ID repräsentiert, oder?)? Ist NSInteger kein Objekt?

    
Justin Copeland 01.04.2012, 03:21
quelle

2 Antworten

19

Sie möchten es zu einer NSNummer machen, wie in:

%Vor%

Jetzt werden Sie das Ergebnis haben, nach dem Sie suchen.

    
Maurício Linhares 01.04.2012, 03:27
quelle
11

Diese Fehler bedeuten, dass member: ein Objekt erwartet. id ist ein Zeiger auf ein Objective-C-Objekt, und anstelle eines Objekts geben Sie einen primitiven Typ oder Skalar (trotz% code_%, NS- ist kein Objekt - nur% co_de) % zu einem primitiven Wert, und in Ihrem Fall ein NSInteger ). Sie müssen diesen Skalarwert in ein Objekt einbinden, insbesondere in typedef , eine Klasse, die speziell dafür entwickelt wurde.

Anstatt int mit NSNumber aufzurufen, müssen Sie es mit dem umbrochenen Wert member: aufrufen, wie Maurício erwähnt hat.

    
Itai Ferber 01.04.2012 03:40
quelle

Tags und Links