ã«ãã´ãªãå®ç¾©ããã¦ãã Static Library ã使ãå ´å、ãªã³ã«ãã©ã°ã« "-ObjC" 㨠"all_load" ãè¨å®ããå¿ è¦ããã。ãªã³ã«ãã©ã°ãè¨å®ããªãå ´å "selector not recognized" ä¾å¤ãçºçãã¯ã©ãã·ã¥ãã。
[49296:207] -[NSCFString extString]: unrecognized selector sent to instance 0x3044 [49296:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString extString]: unrecognized selector sent to instance 0x3044' *** Call stack at first throw:ãã®ãã¨ã¯ä¸è¨ã®Q&Aã§è§£èª¬ããã¦ãã。
ãã® Q&A ã«ããã°ãã®åé¡ã¯ UNIXã® Static libraryå®è£ 㨠Objective-C ã®åçãªæ§è³ªã®éãã«ãã£ã¦å¼ãèµ·ããããã¨ã®ãã¨。ãã®åé¡ãåé¿ããçºã«ãªã³ã«ãã©ã°ã« "-ObjC" ãªãã·ã§ã³ã追å ãã。
ãªã³ã«ãã©ã°ã¯、ã¿ã¼ã²ããã®æ å ±ãéããã«ãã¿ãã®「ä»ã®ãªã³ã¯ãã©ã°」ã«è¨å®ãã。
ãªã Mac OS X ã®64bitç°å¢ããã³ iOS ã§ã¯ãªã³ã«ã«ãã°ããã、"-ObjC" ãã©ã°ãæå®ãã¦ãã«ãã´ãªãå«ã Static Library ã®ãã¼ããåããªã。ãããåé¿ããçºã« "-all_load" ã¾ã㯠"-force_load" ãã©ã°ã使ã。
"-all_load" ãã©ã°ã¯ãªã³ã«ã«å ¨ãªãã¸ã§ã¯ããã¡ã¤ã«ã®ãã¼ããæç¤ºãã。"-force_load" 㯠Xcode 3.2 ããå°å ¥ããããã©ã°ã§、ãªãã¸ã§ã¯ããã¡ã¤ã«æ¯ã«ãã¼ããæç¤ºãããã¨ãã§ãã。ãã®ãã©ã°ã¯ãªãã¸ã§ã¯ããã¡ã¤ã«ã¸ã®ãã¹ã弿°ã«åã。
Duplicate Symbol åé¡
[iPhone][Objective-C] staticã©ã¤ãã©ãªã«ã«ãã´ãªãå«ãéã«æ°ãã¤ããã㨠ã«ããã° "-all_load" ãã©ã°ãä¸è½ã¨ããããã§ã¯ãªã libtool ã®ãã°ãåå ã§ "Duplicate symbol" ã¨ã©ã¼ãå¼ãèµ·ããã±ã¼ã¹ãããã¨ã®ãã¨。ãã®åé¡ãåé¿ããã«ã¯ã¡ãã£ã¨ããããªãã¯ãæ½ãã¨è¯ãããã。以ä¸、å¼ç¨。
ãã®ç¾è±¡ã¯ç¢ºèªã§ãã¦ããªãã®ã§ä»ã®ã¨ããä½ã¨ããããªããã¨ã©ã¼ãåºãæã«åèã«ãªãããã 。å ·ä½çã«ã¯、以ä¸ã®ããã«é¢ä¿ãªãã¯ã©ã¹ã®å®£è¨ã.mã®å é ã®æ¹ã«ä»å ããã°OK。「FIXCATEGORYBUG_NSSTRING_SAMPLE」ã¯ä»ã¨ååã®è¡çªãç¡ããã°ä½ã§ãããã§ã。
- NSString+Sample.m
@interface FIXCATEGORYBUG_NSSTRING_SAMPLE @end @implementation FIXCATEGORYBUG_NSSTRING_SAMPLE @end @implementation NSString (Sample) . . . @end
åèæ å ±
IPHONE - Objective-C categories in static library - efreedom
use force_load - Three20 | Google ã°ã«ã¼ã
Responses
Leave a Response