1
我寫簡單的代碼在Objective C,練習selector
這是工作的罰款XCode在編譯時如何知道函數的名稱?
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"A",@"B", nil];
NSLog(@"Before adding %@",array);
SEL message = @selector(addObject:); //I will change this line
if([array respondsToSelector:message])
{
[array performSelector:message withObject:@"C"];
}
NSLog(@"After adding %@",array);
但只要我改變選擇線,
SEL message = @selector(addobject:);// Just changed name of selector
的XCode開始給予警告:
未聲明的選擇器'addobject:'
現在,問題是XCode在編譯時如何知道方法的名稱是否正確。是否總是有內部選擇器生成的列表,用於我創建的任何對象?在這種情況下,對於NSMutableArray
這就是我的問題,所有的時間XCode跟蹤所有的消息? –
是的,Xcode有一個預編譯的頭文件,其中包含系統類的所有方法名稱,它跟蹤程序中定義的所有方法名稱。 – user3386109
感謝您的快速響應。等待SO讓我接受你的答案。 –