當一個類進行自省,我使用下面的代碼:目標C自省
if([object isKindOfClass:[NSNumber class]]){
NSLog(@"I am an NSNumber: %@", object);
}
NSLog(@"Properties:%@", [object class]);
輸出是:
I am an NSNumber: 320
Properties:__NSCFNumber
任何人都可以解釋爲什麼結果是__NSCFNumber類型的NSNumber?我也注意到NSArray中被確定爲:
__NSArrayI
另外,我會想''__NSCFNumber'具體來自'NSNumber'和'CFNumber'之間的免費橋接。類似的結果來自'[@「」class]'('__NSCFString')。 –
還有「免費橋接」,它說明了有趣的NSCFNumber類名,因爲在Objective-C環境(NS)和Core Foundation環境(CF)中實質上存在相同的類,並且兩者可以互換使用。 –
謝謝 - 這是有道理的。我來自Java和C#背景,它基本上就像「編程到界面」(如果我理解正確的話)。 – PhillyNJ