ǰÑÔ
×î½ü²©Ö÷ÁÙ½ü±ÏÒµ¼¾£¬ÎªÁËÍêÃÀµÄдһƪ±ÏÒµÂÛÎÄ£¬ÕæÊÇ£º¡°³úºÌÈÕµ±Î磬º¹µÎºÌÏÂÍÁ¡±<¡ª¡ª Õâ¾äÊ«¸ú±ÏÒµÎÒд±ÏÒµÂÛÎÄûÈκÎһëǮ¹ØÏµ£¬ÎÒ¾ÍÊÇͻȻÏëÒ÷ʪÁË¡£²»¹ý²©Ö÷×÷ÎªÍøÂ繤³ÌרҵµÄºÃÇàÄê£¬Ôø¾µÄÔ¸ÍûºÍÀíÏë¾ÍÊÇÔÚÏÂË®µÀ¸É³öÒ»·¬ºäºäÁÒÁҵĴóÊÂÒµ£¬Ã»´íÊǾÍÊÇÏÂË®µÀ£¬ÎÒÃǵÄÕ÷;ÔÚÏÂË®µÀ£¡£¡²»¹ý´ó¼Ò±ðÎó»á£¬ÎÒ²»ÊÇÈÌÕß¹êµÄÄԲзۣ¡ÌýÎÒ¼ÌÐøËµ£¡ÎÒÏëµÄÊǵÈÎÒÔÚ¸÷´óÅÅˮϵͳ¸÷´óÏÂË®µÀ¹¦³ÉÃû¾ÍµÄʱºò£¬ÎҾͿÉÒÔÖ¸×ÅÒ»¸ö¾®¸Ç¶ÔÎÒµÄËï×Ó˵£º¡°Åµ
ÄǸöÏÂÃæµÄͨÐŹâÀÂÊÇÒ¯Ò¯Îҽӵģ¡£¡¡± ÎÒÂúÁ³×ÔºÀµØ½ÓÊÜ×ÅÕâËï×ӵľ´Ñö£¡µ«Êǰ¡£¬Ôø¾µÄÔ¸Íû¶¼ÊµÏÖ²»ÁËÁË£¬ÎÒÉîÉî°®×ŵĵØÏÂͨÐŹâÀ°¡£¬Ôø¾¶àÉÙ¸öÒ¹ÍíÀáË®´òʪÁËÎҵıÏÒµÂÛÎÄ£¬äÖȾ¿ªµÄ±ÊÄ«ÄǶ¼ÊǸçÊÅÈ¥µÄÇà´º°¡¡£
ÒòΪÉú»î¾ÍÏñ¿ªÁ˲©Ö÷Ò»¸öÍæÐ¦£¬Èò©Ö÷Óöµ½ÁËÒ»ÖÖ¼¦£¬ÄÇÊÇÒ»ÖÖÌØÊâÆ·Öֵ念¬Ëü½Ð×ö±ÆÓż¦£¡£¡¾ÍÊÇÕâÖ»¼¦Èò©Ö÷ÎÞÔµÎ޹ʵijÉÁËÒ»Ö»APM³¬200µÄÒ°Éú¾¿¼«³ÌÐòÔ³£¡£¡ºð~
à»~£¬°Ñ²©Ö÷´øÀëÁËÏÂË®µÀ£¡²¢ÇÒÓëÕâÖ»¼¦Ì¤ÉÏÁíÒ»¶ËÕ÷;£¡ÁÙ×ßµÄʱºò£¬ÏÂË®µÀµÄͨÐŹâÀ¾ͽ»¸øÄãÃÇÁË£¬·ÊÔí»ùÓÑÃÇ(ÍøÂ繤³ÌµÄ»ùÓÑÃÇ)£¡£¡ÎÒ¿¿£¬ËûÃǾ¹È»ÔÚ´òÓ¡µê»¨ÁË50¿éÇ®¾ÍÖ±½ÓÂòÁËÒ»Ì×Éî¶ÈºÀ»ª±ÏÒµÂÛÎÄÌײͣ¡ÀïÃæ°üº¬ÁËÂÛÎÄ£¬¹¤³ÌÖÆÍ¼£¬CAD£¬±¨¼ÛÇåµ¥£¬ÍØÆË½á¹¹¡¡×îÖØÒªµÄÊÇÀϰå³Ðŵ²»ÐèÈκÎÐ޸ģ¬Ö±½Ó¿ÉÒÔͨ¹ý±ÏÒµ´ð±ç£¬²»Í¨¹ýÀ´ÄêÃâ·ÑÔÙÌṩһÌ×ÂÛÎÄ£¬×îÌùÐĵÄÊǾ¹È»Ö§³Öͨ¹ýÔÙ¸¶¿î£¡£¡£¬

ͼ1
ÀÏ×ÓдÂÛÎÄдÁ˰ë¸öÔÂÏñ¹·Ò»Ñù£¬ËûÃǾ¹È»Ö±½Ó¾ÍÂòÁË£¡¾ÍÕâôÂò¹ýÈ¥ÁË£¡£¡¶ÔµÃÆðÀÏʦµÄ×»×»½Ì»å¡¢×Ô¼ºµÄÐÁ¿à¸¶³öºÍ¸¸Ä¸µÄÆÚ´ýô£¿ÎÒ¾ÍÎÊÄãÃDzÑÀ¢²»²ÑÀ¢£¿ÎªÊ²Ã´ÂòµÄʱºò²»º°ÉÏÎÒ£¿ÀáÒÑÌʸÉ~
±ÆÓż¦
ÖÕÓÚÀ´µ½ÁË´ó¼ÒÆÚ´ýµÄÕýƬ£¬½ñÌìÎÒ¾ÍÒªºÍ´ó¼Ò½²ÎҺͱÆÓż¦µÄ¹ÊÊ£¬±ÆÓż¦ËüÓÅÑŵ͵÷£¬ËüÉí²ÄÁáç磬²ØÄäÔÚºÚ°µ´¦£¬Ìô¶¯×ÅÎÒµÄÓûÍû£¡Ôø¶à¸öÈÕÒ¹²©Ö÷¶¼¡¡£¨²Á£¡ÄáÂ꣬±ÆÓż¦ÊÇʲô¹í£¿ËµºÃµÄ¼¼ÊõÎÄÕÂ?£©Í¬Ñ§ÄãÕæµÄ(bi¨¨)¼±£¬ÄãÏÈ×øÏ£¬ÏȰÑЬ×Ó´©ºÃ£¡ÎÒ˵µÄ±ÆÓż¦ËüµÄÓ¢ÎÄÃû½Ð×ö(Bug)£¬Ëüͦ(T)ÃÀ(M)µÄ(D)¡¡
¸è×гªµÄºÃ£º
¶àÉÙÔ³Ôø±»Ëü¶á×ßÄêÇáµÄÈÝÑÕ
¶àÉÙÔ³ÔøÔÚËüÃæÇ°ÁÁÃÅͺÁËÍ·
¶àÉÙBugÔø¾ÉúÃüÖÐÀ´ÁËÓÖ»¹
¿ÉÖªÒ»ÉúÓÐÄãÎÒ¶¼ÅãÔÚÄãÉí±ß

ͼ2
ÎÞÊý¸öÒ¹ÍíÄã¾¾×ÅÍ··¢ºÍBug˺ҧµÄÇé¾°²©Ö÷¿ÉÒÔÌå»á£¬ËùÒÔÕâ´ÎµÄÕâÆªÎÄÕ²©Ö÷¾ÍÒª¸ø´ó¼ÒÕûÀíÒ»¸öµ÷½ÌIOS±ÆÓż¦µÄ·½·¨ºÀ»ªÌײͣ¡£¡·ÅÐÄ£¡¾ø¶ÔµÄÉî¶ÈºÀ»ª£¬ÒòΪÒѾ¼ÓÈë¿ÏµÂ»ùºÀ»ªÎç²Í~¿È¿È~ÆäʵÊÇÒòΪ±ÆÓż¦(Bug)¶ÔÓÚÎÒÃDZϾ¹ÊdzýÁËÀÏÆÅÖ®ÍâµÚ¶þ¿ÉŵĴæÔÚ£¡ÎÒÃDZØÐëÒªÁ·¾ÍÍÍ·Ìú±ÛÊ®°Ë°ãÎäÒÕ£¬¼ÀÁ·ÆæÃÅÇɼ¼¸÷ÖÖ´óɱ£¡·½¿ÉÓëÖ®ÖÜÐý²¢½«Ö®¼ßÃ𣡺㡸ú×Ų©Ö÷Ò»Æð×°±ÆÒ»Æð·É°É£¡£¡£¡£¡
µÚÒ»²½£º
ÎÒ¿´´ó¼ÒÅîÍ·¹¸ÃæµÄ¾ÍÖªµÀ´ó¼Ò¸Õ¸ÕÒ²²Ådebug»ØÀ´ £¬ÎÒÃǾÍÏÈд¸öhello worldѹѹ¾ª°Ñ£¡
µÚ¶þ²½
¡¡
Öª¼ºÖª±Ë °ÙÕ½²»´ù
´Ë´¦Îª´óÁ¿Copy£¡²»Ï²ÇëÅ磡
The software doesn't do something that the product
specification says it should do.
The software does something that the product specification
says it shouldn't do.
The software does something that the product specification
doesn't mention.
The software doesn't do something that the product
specification doesn't mention but should.
The software is difficult to understand, hard to use,
slow, or in the software tester's eyes will be viewed
by the end user as just plain not right.
ÎÒ²»ÊÇÓ¢ÎĽÌʦ£¬Çë´ó¼Ò×ÔÐÐÇл»¶àÓïÑÔÔĶÁģʽ¡£
Ò²»¹ÓÐÓÐÈË´Ö±©µÄ¶¨Òå ¡±Bug¾ÍÊÇ´íÎó¡°£¬³ýÁËÊÀ½çÉϵÚÒ»Ö»BugÊǷɽøÈ¥µÄÄÇÖ»³æ×ÓÍ⣬ÆäËûBugÎãÓ¹ÖÃÒÉÄǶ¼ÊdzÌÐòÔ±ÃÇ×Ô¼ºÉúÏÂÀ´µÄ£¡³ÌÐòÔ±ÃÇ×Ô¼º·¸µÄ´íÎó£¡Èç¹û˵һ¸öÈí¼þ×÷Æ·(Çë×ðÖØÄã×Ô¼ºµÄ×÷Æ·£¬²»Òªº°ËûÃÇ¡±²úÆ·¡±»òÕß¡±ÏîÄ¿¡±)ÊdzÌÐòÔ±ÃÇ×Ô¼ºµÄº¢×Ó£¬ÄÇôBug¾ÍÊÇÕâ¸öº¢×ÓµÄÉúµÄ²¡£¬Óв¡µÃÖΣ¬Ò©²»ÄÜÍ££¡Éú²¡Óи÷ÖÖÖÎÁÆ·½·¨£¬ÎïÁÆ£¬ÀíÁÆ£¬»¯ÁÆ£¬ÐÄÀíÁÆ¡¡ÄÇô¡°ÖÎÁÆ¡±BugÒ²ÊÇÓжàÖз½·¨µÄ£¡ÏÂÃæ²©Ö÷»áÒ»Ò»Áо٣¡³ÍÖÎÕâЩ¸öBug֮ǰ£¬²©Ö÷ÒªÏȰ¢À°ÍÀÒ»·¬£¬Óöµ½BugÒ²ÊÇÒ»¼þ±È½ÏßÙÁ˹·Á˵ÄÊÂÇ飬ÄãÒªÖªµÀÈκÎÈ˶¼»áÉú²¡£¬Ã»ÓÐÀýÍ⣡ËùÓÐÈκδúÂë¶¼ÓÐBugÕâÊǶ¨Àí£¬ÎÒÃÇÊ×ÏÈÒª´ÓÐÄ̬É϶ËÕýBugÕâ¼þÊÂÇ飬ÎÒÃÇ¿ÉÒÔÀí½âΪȱº¶Ò²ÊÇÒ»ÖÖÃÀ£¬¾ÍÏñ°¢Óê˵µÄ¡°Ã»ÓÐÖåÎÆµÄ׿ďÊÇ¿Éŵģ¬Ã»Óа׷¢µÄÀÏÕßÊÇÈÃÈËÒź¶µÄ¡£Ã»ÓзÏÐæµÄÈËÉúÌ«ÀÛÁË£¬Ã»ÓзÏÐæµÄ´óµØÌ«¼·ÁË£¬ÑڸǷÏÐæµÄ¾Ù¶¯Ì«Î±Õ©ÁË¡£¡±DebugÊÇΪÁËÖ¤Ã÷³ÌÐòÓÐ´í£¬¶ø²»ÊÇÖ¤Ã÷³ÌÐòÎÞ´íÎó£»ËùÒÔÎÒÃÇÒª×öµ½ÁÙBug¶ø²»¾åÕß,Ê¥ÈËÖ®ÓÂÒ²£¡ËùÒÔÎÒÃÇÒª×öµ½Õ½ÂÔÉÏÃêÊÓËü£¬Õ½ÊõÉÏÖØÊÓËü£¡ÄãÒªÐÄÀíĬÄîBugÆäʵͦ(T)ÃÀ(M)µÄ(D)!anyway
ÎÞBug²»Éú»î£¡£¡
³éµ¶¶ÏBug
¶Ïµã£¬£¨ÎÒÇóÄãÃDz»ÒªÏëµ½Õž´Ðù£¬°¢ÐùËûÈÝÒ×ô£¬Ð¡ÊÜÓÖÔõôÁË£¿ÄãÃÇÕâ°ïÈËÕæÊǵģ¡£¡£©£¬ÎÒҪ˵µÄ¶ÏµãÊÇBreakPoint£¡»ù±¾Éϲ»ÊDzзϵÄIDE¶¼¾ßÓжϵãµ÷ÊÔ¹¦Äܰɣ¡ÓÈÆäÊÇXCode£¬ÎÒÃǼҵÄIDE¶Ïµãµ÷ÊÔ¹¦ÄÜ¿ÉÊÇÇ¿ÖÐÓÖÊÇÇ¿ÖÐÊÖ£¡ÔÚÕâ֮ǰ´ó¼Ò¿ÉÒÔÏÈÁ˽âһϹþ×ÓÊǶϵ㣿ËüÔõôʵÏֵģ¿¹¤×÷ÔÀíÔõôÑùµÄ£¿²©Ö÷¾ÍÏ׳ó˵˵×Ô¼ºµÄÀí½â°É£¬¶Ïµã£¬¹ËÃû˼Òå¾ÍÊÇ´ÓǰÓÐÒ»¸öµã£¬ºóÀ´Ëü¶ÏÁË£¬Ð»Ð»£¬ÎҵĹÊʽ²ÍêÁË¡£°¥Ó´»¹²»·þ£¬ÕâЩ»ù´¡³£Ê¶µÄ¶«Î÷×Ô¼º²»»á²é£¿Äã»¹ÕæµÄÁ³Æ¤ºñÉÏÌìÁËÈ¥ÁË£¬»¹Òª²©Ö÷¸øÄã²éÓ´£¬×Ô¼º²éÈ¥£¡
ÆÕͨ²Ù×÷

Èçͼ3
»ù±¾µÄ¶Ïµã²Ù×÷ÈçÏÂ

ͼ4
µã»÷ÄǸöºÚÁÐÁоʹ´½¨ÁËÒ»¸ö¶Ïµã£¬Ôٴεã»÷¾ÍÁÙʱȡÏûÕâ¸ö¶Ïµã(µ«ÊDz»É¾³ý)£¬³¤°´ÄǸö¶ÏµãÍϳöÈ¥¾Íɾ³ýÁË(mac
osµÄϵͳ¹¤³Ìʦ¾ÍÊÇÏ¡·¹Í϶¯µÄ¿ì¸Ð)£¬µ±È»Ò²¿ÉÒÔÓÒ¼üÄǸö´´½¨µÄ¶Ïµã£¬»áµ¯³öÏàÓ¦µØ²Ëµ¥¡£
µ±È»Ò²»¹¿ÉÒÔ¼àÊÓij¸ö±äÁ¿£¡

ͼ5
ÔÚ¶ÔÏóÊÓͼÖУ¬ÓÒ¼üij¸ö¶ÔÏ󣬵ã»÷¡°Watch ¡®XXX¡¯¡±¾ÍÍê³ÉXXX¶ÔÏóµÄ¼àÊÓÁË¡£
ÕâÀïÎÒ¼àÊÓÁËlabÕâ¸öUILabelµÄ±äÁ¿£¬Ã¿µ±Õâ¸ö±äÁ¿½øÐиüÐÂËüµÄÐÅÏ¢¾Í»á±»´òÓ¡µ½¿ØÖÆÌ¨¡£
ºÃ°É£¡ÎÒÃÇ×î»ù±¾µÄ´´½¨¶ÏµãµÄ¹¤×÷ÒѾѧ»áÁË£¬XcodeÊæ·þÔÚʲôµØ·½ÄØ£¿¾ÍÊDz»·ÖDebugģʽºÍRunģʽµÄ£¬¿ÉÒÔ˵ÊÇÎÞ·ìÇл»µÄ£¬ÄãֻҪûÓд´½¨¶Ïµã£¬ÄÇô¾ÍÊÇRunµÄÕý³£Ä£Ê½£¬Èç¹û´´½¨Á˶ϵ㲢ÇÒÔËÐе½¶Ïµã´¦£¬¾Í×Ô¶¯½øÈëDebugģʽ¿©£¬²»ÏñijEC¿ªÍ·µÄIDE£¬¿ØÖÆÃæ°å¾ÍÏñ¿ª·É»úµÄÒ»Ñù£¬¼¸Íò¸ö°´Å¥ÒÔΪºÜÇ¿´ó£¬ÆäʵֻÓÃÁËRunºÍStop£¬»¹ÓÐʲôDebugģʽ£¬Appģʽ¡¡£¬¹ûÈ»XcodeµÄÓÅÔ½¸ÐÔÚ¶Ô±ÈÖиü¼ÓÇ¿ÁÒÁË£¬Êæ·þµ½¼«µãѽ£¬¾ÍÏñÏÄÌìµÄº£·ç·÷¹ý¾Õ»¨£¬àÅÊǵÄ
¾ÍÊÇÄÇÖָоõ£¡
ÎÒÃÇ´´½¨ºÃÁ˶ϵ㣬ÔËÐе½¶Ïµã¾Í×Ô¶¯Í£ÏÂÀ´ÁË£¬ÏñÕâÑù£º

ͼ6
ÕâЩDebugµÄ×î»ù±¾²Ù×÷¼¼ÄÜÊÇÿһ¸öÈëÃŵÄIOS¿ª·¢Õß¶¼ÒªÕÆÎյģ¬Ó¦¸Ãµ±³ÉÒ»ÖÖ±¾ÄÜ£¬¾ÍÏñ¹·°®³ÔÏèÒ»Ñù(àÞ
¶Ô²»Æð ²©Ö÷²»ÊÇÆçÊÓ¹·µÄÒâ˼£¬²©Ö÷Ò²Ñø¹ý¹·£¬ºÜ¶þ±Æµ«ÊÇ´Ó²»³ÔÏè£¡ÕæµÄ¾ÝÎÒËùÖªËü´ÓÀ´²»³ÔÏèµÄ£¬ÕâÀïÖ»ÊDZÈÓ÷Ö»ÊDZÈÓ÷)¡£
È«¾Ö¶Ïµã£¨Global BreakPoint£©
ÓÐʱºòÔÚ³ÌÐò³ö´íµÄʱºò²»ÄÜÄÜ׼ȷ¶¨Î»µ½±¼À£µÄÄÇÒ»ÐдúÂë,¶øÊÇÖ±½ÓÅܵ½mainÑ»·»òÕßAppdelegateÀïÃæ£¬
»òÕß»á¸øÄãÕâÑùµÄÌáʾ£º
ÊDz»ÊÇÓÐÖÖÏë¿ÞµÄ³å¶¯£¿ÄáÂê~ÖÁÉÙ¸øÎÒһЩ¶ÑÕ»ÐÅÏ¢Ò²ºÃѽ~¡¡Õâ¸öʱºòÄãǧÍò²»ÒªÔÒÊó±êºÍ¼üÅÌŶ£¬Ò»Çж¼ÊÇÖ÷»úÔÚÔËÐУ¬ÄãÔÒÊó±êºÍ¼üÅÌÓÐʲôÓÃÄØ£¿Ó¦¸ÃÊÇÌßÖ÷»úѽ~~£¬ÏÖÔÚÓÐÁËÈ«¾Ö¶Ïµã£¬ÄïÇ×ÔÙÒ²²»µ£ÐÄÄãÔÒÊó±êÁË£¬ÄãÖ»ÐèÒªÕâÑù£º

ͼ7
ÔÚDebugµ¼º½Ãæ°å½øÐÐÉÏͼµÄ²Ù×÷£¬Äã¾Í½¨Á¢ÁËÈ«¾Ö¶Ïµã£¬ÕâÑùÖ»ÒªÓöµ½´íÎó£¬debug³ÌÐò¾Í»á×Ô¶¯¶¨Î»µ½Õ»µ×µÄÐÅÏ¢£¬Ò²¾ÍÊÇÄã×îÏȳö´íµÄ´úÂëµÄÄÇÒ»ÐУ¬ÕâÑùÄã¾Í¿ÉÒÔ¿ìÀÖµÄdebugÀ~~
Ìõ¼þ¶Ïµã(Condational Breakpoints)
´ÓǰÓÐÒ»¸öÓÎÏ·£¬½Ð×öߣ°¡ß££¬ÓÐÐ©Íæ¼ÒËûÃÇÖªµÀÔõô²Ù×÷£¬»á·Å¼¼ÄÜ»á×ß·£¬µ«ÊÇËûÃDz»ÖªµÀÂò×°±¸£¬ÍæÁËÒ»¾ÖÏÂÀ´£¬Ð¬×ÓСµ¶¶¼Ã»ÓÐÂò¡£ÎÒΪʲô½²Õâ¸ö¹ÊÊÂÄØ£¿ÒòΪºÜ¶àСÅóÓÑѧ¶«Î÷ºÍÍæÓÎÏ·Ò»Ñù£¬¿´ÍêÇ°ÃæµÄ¼¸ÖÖµ÷ÊÔ¼¼ÄÜ£¬¾ÍÒÔΪ×Ô¼ºÒѾŒÅ±¬ÎÞµÐÁË£¬ÆäʵËûÃDz»¹ýÊdzöÃŲ»´ø×°±¸µÄÍæ¼Ò£¬Èç¹ûÖ»ÊÇʹÓÃÁËÒÔÉϵĵ÷ÊÔ¼¼ÄÜÖ»ÄÜ˵ÊǵÍÍæ£¬ÔڸߴóµÄ±ÆÓż¦ÃæÇ°¸ù±¾¾ÍÊǻᱻ˲ÃëµÄÄÇÖÖ£¬ËùÒÔѧ»á×°±¸×Ô¼º²ÅÊÇÍõµÀ£¡Ìõ¼þ¶Ïµã£¬¾ÍÊÇѧ»áÓеķÅʸ£¡
ÎÒÃÇÀ´¿´Ò»¶Î´úÂë

ͼ8
ÄãÊDz»ÊÇÏëÎʲ©Ö÷ΪºÎÄÇô·çɧ£¬¾¹È»ÉÏÁËSwiftÁË£¡£¡ÎÒ´Ë¿ÌÖ»ÏëÒ÷Ò»Ê×ʪ£º±ðÈËЦÎÒÌ«Òùµ´£¬ÎÒ¼ÒסÔڻƺ×Â¥¡£
·´ÕýÕâ¸öÄê´ú´ó¼Ò¶¼ÊdzԱ¥Á˳Å×ŵ쬲©Ö÷Ò²ÊÇ£¬ËùÒÔ¾ÍѧѧSwift¿©¡£
ÎÒÃÇÈç¹ûÔÚÒ»¸öÑ»·ÀïÃæÊ¹ÓÃÁ˶ϵ㣬Èç¹ûÕâ¸öÑ»·Ö´ÐÐÁË100Íò´Î£¬ÄÇÄãµÄ¶ÏµãÒªÖ´ÐÐÄÇô¶à´Î£¬Äã²»¾õµÃµ°µ°¶¼Á¹Á˵ÄÓÇÉËô£¿ËùÒÔÎÒÃÇÕâô×ö£º

ͼ9
ÕâÑùÖ»ÓбéÀúµ½c==¡°H¡±µÄʱºò ¶Ïµã²Å»á±»´¥·¢¡£

ͼ10
ÊDz»ÊǺܰôÄØ£¡
ÓÐЩͯЬµÄîѺϽð¹·ÑÛÒѾ¿´µ½Á˱༶ϵãÄÇÀïÓÐÒ»¸öActionµÄ¶«Î÷£¬ÄÇÊÇÊ²Ã´ÄØ£¿
Õâ¸öÊǷdz£Ç¿´óµÄ£¬¿ÉÒÔÔÚÄã¶ÏµãµÄλÖã¬Ö´Ðи÷ÖÖ²Ù×÷£¬±ÈÈçÖ´Ðнű¾ÃüÁ¿ØÖÆÌ¨ÃüÁî(¿ÉÒÔÖÆ¶¨µ÷ÊÔÐÅÏ¢×Ô¶¨Òå±£´æ)¡¢´òÓ¡ÐÅÏ¢µÈ£¬
²©Ö÷×îϲ»¶µÄ¾ÍÊÇÕâ¸öLog messageÀ²£¬¼òµ¥´Ö±©£¡¸ù±¾¾Í²»ÐèÒªprint°¡NSLogÂֱ½ÓÔڶϵãµÄAction´òÓ¡¾ÍºÃÁË£¨ÆäʵÕâ¸öÊÇXcodeºÍµ÷ÊÔÆ÷½áºÏµÄ¸ßÄܲúÎÏÂÃæÔÙ½éÉÜ£©¡£¾ßÌå¿ÉÒÔÕâÑù£º

ͼ11
Æäʵ¸Õ¸Õ²©Ö÷Èö»ÑÁË£¬²©Ö÷×îϲ»¶µÄAction²¢²»ÊÇLog Message£¬¶øÊÇSound£¬¹ËÃû˼ÒåÂ¶ÏµãÉäÔÚBugÉÏ£¬ÕâÑùÓöµ½¶Ïµã¾Í»á·¢³öÉùÒô£¬Ìýµ½ÎÒ×Ô¼ºÉèÖõÄÉùÒô£¬ÎÒ¾ÍÖªµÀÊÇʲôBugÁË£¬ÌýÉùʶBug£¬ºÇºÇ£¬EXEC_BAD_ACCESSµÄ´íÎóÎÒÉèÖóÉÁ˲¨¶àÒ°ÀÏʦµÄÉùÒô£¬unrecognized
selector send to instancdµÄ´íÎóÎÒÉèÖóÉÁ˲ÔÀÏʦµÄ¡¡ ²»ÒªÎÊÎÒϵͳÔõôûÓмªÔóÃ÷²½µÄÉùÒô£¬ÎÒ¸ù±¾¾Í²»ÖªµÀËÊǼªÔóÃ÷²½¡£
µ±È»»¹Óиü¼ÓÇ¿´óµÄÌõ¼þ¶Ïµã¾ÍÊÇÕâ»õÀ²

ͼ12
Ìí¼ÓÖ®ºóÔÚ Symbol Ò»À¸ÊäÈë viewDidLoad¡£
ÕâÑùÒ»À´£¬ÔÚ³ÌÐòÖÐËùÓÐµÄ viewDidLoad ·½·¨±»µ÷ÓÃʱ¶¼»á´¥·¢¶Ïµã¡£

ͼ13
µ±È»£¬ÎÒÃÇÒ²¿ÉÒÔ½ö½öÎªÌØ¶¨µÄij¸öÀàµÄ·½·¨Ìí¼Ó¶Ïµã¡£ÔÚ Symbol Ò»À¸ÊäÈë
[ClassName viewDidLoad] (Objective-C) »ò ClassName.viewDidLoad
(Swift) ¼´¿É¡£
±ÈÈ磺unrecognized selector sent to instance
0xaxxxx ÕâÖÖ´íÎó£¬Õâ¸öinstance¿ÉÒÔÕâÑù¿ìËÙ¶¨Î»

ͼ14
´òÓ¡µÄÒÕÊõ
¾¡¹ÜARCÒѾÈÃÄÚ´æ¹ÜÀí±äµÃ¼òµ¥¡¢Ê¡Ê±ºÍ¸ßЧ£¬µ«ÊÇÔÚobjectµÄlife-cyclesÖиú×ÙÒ»Ð©ÖØÒªÊ¼þÒÀȻʮ·ÖÖØÒª¡£±Ï¾¹ARC²¢Ã»ÓÐÍêÈ«ÅųýÄÚ´æÐ¹Â¶µÄ¿ÉÄÜÐÔ£¬»òÕßÊÔͼ·ÃÎÊÒ»¸ö±»releaseµÄ¶ÔÏó¡£ÎªÁËÕâ¸öÄ¿µÄ£¬ÎÒÃÇ¿ÉÒÔºÜÒÕÊõµØÍµ¿ú¶ÔÏóÕýÔÚ×öЩʲô£¬ÏëÏë¾ÍºÃÓпì¸Ð¡£
NSLog
С»ï°éÃǵÚÒ»½Ú¿ÎѧϰViewControllerµÄÉúÃüÖÜÆÚµÄʱºò£¬ÀÏʦ¿Ï¶¨ºÜâ«ËöµÄ½ÌÁË´ó¼Ò£¬ÔÚviewControllerµÄÿ¸öÉúÃüÖÜÆÚµÄ·½·¨ÖÐʹÓÃÁËNSLogÀ´Íµ¿ú£¡Ã»´í£¬ÕâÑùÆäʵ¾ÍÊÇ×î¼òµ¥±¬Õ¨µÄ¸ú×ÙÉúÃüÖÜÆÚµÄ·½·¨ÁË£¬²»¹ýϵͳ×Ô¼ºµÄNSLogÕæÐÄÓеãÙúÈõ£¬Êä³öµÄÐÅϢ̫ÉÙ£¬¸ù±¾¾Í²»ÄÜÂú×ãÎÒÃǵÄÓûÍû£¬ÕâÀïÎҽ̴ó¼ÒÇ¿»¯ÄãµÄLog£¡£¡
¿ÉÒÔÓÃÏÂÃæµÄÕâ¶Îºê
//A better version of NSLog #define NSLog(format, ...) do { \ fprintf(stderr, "<%s : %d> %s\n", \ [[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \ __LINE__, __func__); \ (NSLog)((format), ##__VA_ARGS__); \ fprintf(stderr, "-------\n"); \ } while (0) |
¹ØÓÚºêµÄÍþÁ¦ ´ó¼Ò¿ÉÒÔÂÒÈëÎҵIJ©ÎÄ¡¶ IOSÖеÄÔ¤±àÒëÖ¸ÁîµÄ³õ²½Ì½¾¿¡·
ÕâÑù´òÓ¡³öÀ´µÄ¶«Î÷²ÅÏñ»°Âï(ÆäʵNSLogµÄ´òÓ¡ÊǷdz£µÍЧµÄ£¬ÉõÖÁ±ÈprintµÍ100±¶£¬¸ÐÐËȤ×Ô¼º··Æ»¹ûÊֲῩ)¡£
ʹÓÃobjcÓïÑÔ(Ç¿ÀàÐÍ)²¢ÇÒÓÃNSLog´òÓ¡µÄʱºò£¬³£³£¸ã²»Çå³þNSLog(@¡°%?¡±,xxx)
xxxÕâÖÖÀàÐ͸ÃÊÇʲôʲôÀàÐÍÊä³ö£¬Ó¦¸ÃÊÇ%dÄØ»¹ÊÇ%@Òà»òÊÇ%f£¿£¿£¿ÉµÉµ·Ö²»Çå³þ~£¬ËùÒÔÍæ×ªNSLogÄãÓ¦¸ÃÒªÖªµÀÒÔÏÂÕ⼸¸öÈ«¾Ö·½·¨£¡

ͼ17
¿ªÆô½©Ê¬¶ÔÏó(Enable NSZombie Objects)
Xcode¿ÉÒÔ°ÑÄÇЩÒѾreleaseµôµÃ¶ÔÏ󣬱ä³É¡°½©Ê¬¡±£¬µ±ÎÒÃÇ·ÃÎÊÒ»¸öZombie¶ÔÏóʱ£¬Xcode¿ÉÒÔ¸æËßÎÒÃÇÕýÔÚ·ÃÎʵĶÔÏóÊÇÒ»¸ö²»Ó¦¸Ã´æÔڵĶÔÏóÁË¡£ÒòΪXcodeÖªµÀÕâ¸ö¶ÔÏóÊÇʲô£¬ËùÒÔ¿ÉÒÔÈÃÎÒÃÇÖªµÀÕâ¸ö¶ÔÏóÔÚÄÄÀÒÔ¼°ÕâÊÇʲôʱºò·¢ÉúµÄ¡£
ËùÒÔZombiesÊÇÄãµÄºÃ»ùÓÑ£¡Ëû¿ÉÒÔÈÃÄãÊä³öµÄÐÅÏ¢¸ü¾ßÌ壡£¡
¾ßÌåÕâÑù×ö£º

ͼ15
×Ô¼ºÔÙÊÔÊÔÊä³öObjectµÄÐÅÏ¢¿©£¬ÊDz»ÊǺܰôÄØ£¿
½©Ê¬Ö»ÄÜÓÃÔÚÄ£ÄâÆ÷ºÍOCÓïÑÔŶ~
|