Stai vedendo questo perché NSString è un cluster di classe. Vedere i documenti di Apple here per una spiegazione generale e here per le note specifiche sulla sottoclasse di NSString. Fondamentalmente, NSString è una classe astratta senza alcun metodo di memorizzazione dei caratteri, e i vari metodi -initWith ... restituiscono diverse sottoclassi concrete di NSString basate sul metodo di inizializzazione. Normalmente, quando si utilizza NSString, questo è completamente trasparente. Tuttavia, se vuoi creare sottoclassi NSString, devi almeno implementare i metodi di base (-length e -characterAtIndex :) più eventuali metodi di init che vuoi avere (e, ovviamente, avere un modo di memorizzare i caratteri della stringa).
Se si desidera semplicemente aggiungere funzionalità a NSString, la sottoclasse di solito non è necessaria. Innanzitutto, dovresti controllare se una categoria, o una funzione che opera su una NSString, o un metodo su una classe che contiene la NSString funzionerà meglio. Ad esempio, vedere RegexKit o Google Toolbox For Mac, entrambi implementano il supporto per le espressioni regolari utilizzando una categoria su NSString.
fonte
2010-04-03 16:49:18
HO hai assegnato questa istanza? –
Mostra il tuo codice. –