Objective-cæ¹æ³è°ç¨æµç¨
ããObjective-cæ¯ä¸é¨å¨æè¯è¨ï¼å¨æ两个å主è¦å°±ä½ç°å¨æ们è°ç¨æ¹æ³çæ¶åï¼è¿è¡æ¶åå¨æçæ¥æ¾æ¹æ³ï¼ç¶åè°ç¨ç¸åºçå½æ°å°åãè¿è¡æ¶æ¯æ´ä¸ªObjective-cç¨åºçåºç³ï¼æäºå®æ们çç¨åºæè½æ£å¸¸è¿è¡èµ·æ¥ã
ããNSObjectæ¯Cocoaä¸ç»å¤§é¨åç±»çåºç±»ï¼å®ä¸»è¦æ¯æä¾äºåºåè¯ï¼æ·è´å¯¹è±¡ï¼ä»¥åæ¯æè¿è¡æ¶å¨æè¯å«çæ¡æ¶ã
ããå¨Objective-cä¸æ¯ä¸ä¸ªç±»å¯¹è±¡æå¼å§çä½ç½®é½ä¼æä¸ä¸ªisaæéï¼è¯¥æéæåä¸åå ååºåï¼è¯¥é¨å主è¦å å«ä¸¤é¨åä¿¡æ¯ï¼
ãã1ãæåç¶ç±»çæéã
ãã2ãèªèº«çæ¹æ³åå表ã
ããæäºè¿ä¸¤é¨åï¼Objective-cçæ¹æ³çè°ç¨æµç¨å°±å¯ä»¥è·èµ·æ¥äºãå½æ们è°ç¨ä¸ä¸ªå¯¹è±¡çæä¸ä¸ªæ¹æ³çæ¶åï¼é¦å ä¼å¨å½åç±»çåå表ä¸å¯»æ¾è¯¥æ¹æ³ï¼å¦ææ¾ä¸å°å¯¹åºçæ¹æ³ï¼ç¶ååå»å ¶ç¶ç±»ä¸å¯»æ¾è¯¥æ¹æ³ï¼ä¾æ¬¡ç±»æ¨ç´å°æ¾å°å¯¹åºçæ¹æ³ä¸ºæ¢ï¼æµç¨å¾å¦ä¸ï¼
ããä½ å¯è½ä¼æ³å°ï¼å¦æä¸ä¸ªç±»æå¾æ·±ç继æ¿å±æ¬¡ï¼æ¯æ¬¡å»è°ç¨æ ¹ç±»çæ个å½æ°ï¼å²ä¸æ¯é½è¦åå¾å¤æ¬¡æ¥æ¾ãç论ä¸æ¯è¿ä¸ªæ ·åçï¼ä¸è¿runtimeä¹å¹¶éé£ä¹å»ï¼å®ä¼ä¸ºæ¯ä¸ä¸ªç±»ï¼ä¸æ¯å¯¹è±¡ï¼ç»´æ¤ä¸ä¸ªç»å¸¸è°ç¨çæ¹æ³çå表ï¼åªè¦è°ç¨è¿å°±ä¼ç¼åèµ·æ¥ï¼å®æ¹æ²¡ææ确说æç¼åæºå¶ï¼ï¼è¿æ ·å½ç¨åºè¿è¡ç¨³å®ä»¥åæ´ä¸ªæ¹æ³è°ç¨çè¿ç¨å°±ä¼æ´å é«æã
ããéè¿å¦ä¹ å®æ¹ææ¡£Objective-C Runtime Programming Guideï¼å¯ä»¥åç°å ¶å®ææçselectorè°ç¨æåé½ä¼è½¬å为Cç±»åçå½æ°è°ç¨ã举个ä¾åæ们å建äºä¸ä¸ªAç±»åç对象aSampleï¼ç¶åè°ç¨å ¶testæ¹æ³ï¼[aSample test]ï¼ï¼ç¼è¯çæ¶åï¼ç¼è¯å¨å°±ä¼å°è¯¥è°ç¨è½¬å为objc_send(aSample, selector)çå½¢å¼ï¼runtimeä¼è°ç¨testæ¹æ³å®ç°æ对åºçå½æ°å°åã该å½æ°çåæ°å å«äºä¸¤ä¸ªéå«çåæ°self以å_cmdï¼å ¶ä¸selfæåè°ç¨è¯¥æ¹æ³ç对象ï¼_cmdå代表è¦è°ç¨çæ¹æ³ã
ããåé¢æå°äºNSObjectæä¾äºå¾å¤éåçæ¹æ³å¯ä»¥åè¿è¡æ¶è¿è¡äº¤äºï¼å ¶ä¸æ个æ¹æ³methodForSelectorï¼éè¿å®æ们å¯ä»¥ç´æ¥è·åå°æå®çæ¹æ³å¯¹åºçå½æ°æéãé常æ们ç´æ¥ä½¿ç¨Objective-cæ¹å¼çæ¹æ³è°ç¨å°±å¯ä»¥äºï¼ä½ææ¶ç¨åºä¸å¯è½ä¼é¢ç¹çè°ç¨æä¸ä¸ªæ¹æ³ï¼ä¸ºäºæé«æçãæ们å¯ä»¥ç´æ¥è·åå°æ¹æ³å¯¹åºçå½æ°å°åï¼ç¶åç´æ¥è°ç¨è¯¥å½æ°ï¼è¿æ ·å°±å°äºå¨æè¯å«çæ¶é´ã