ǰ¶Îʱ¼ä¹«Ë¾ÏîÄ¿´òËãÖØ¹¹£¬×¼È·À´ËµÓ¦¸ÃÊǰ´Ö®Ç°µÄ²úÆ·Âß¼ÖØÐ´Ò»¸öÏîÄ¿??¡£ÔÚÖØ¹¹ÏîÄ¿Ö®Ç°Éæ¼°µ½¼Ü¹¹Ñ¡Ð͵ÄÎÊÌ⣬ÎÒºÍ×éÀïС»ï°éÒ»ÆðÑо¿ÁËÒ»ÏÂ×é¼þ»¯¼Ü¹¹£¬´òË㽫ÏîÄ¿ÖØ¹¹Îª×é¼þ»¯¼Ü¹¹¡£µ±È»²»ÊÇÖ±½ÓÄÃÀ´Õհᣬ»¹ÊÇÒª¸ù¾Ý¹«Ë¾¾ßÌåµÄÒµÎñÐèÇóÉè¼Æ¼Ü¹¹¡£
ÔÚѧϰ×é¼þ»¯¼Ü¹¹µÄ¹ý³ÌÖУ¬´ÓºÜ¶à¸ßÖÊÁ¿µÄ²©¿ÍÖÐѧµ½²»ÉÙ¶«Î÷£¬ÀýÈçÄ¢¹½½ÖÀîÖÒ¡¢casatwy¡¢bangµÄ²©¿Í¡£ÔÚѧϰ¹ý³ÌÖÐÒ²Óöµ½Ò»Ð©ÎÊÌ⣬ÔÚ΢²©ºÍQQÉϺÍһЩ×öiOSµÄÅóÓѽøÐÐÁ˽»Á÷£¬·Ç³£¸ÐлÕâЩÅóÓѵİïÖú¡£
±¾ÆªÎÄÕÂÖ÷ÒªÕë¶ÔÓÚ֮ǰ̹½½ÖÌá³öµÄ×é¼þ»¯·½°¸£¬ÒÔ¼°casatwyÌá³öµÄ×é¼þ»¯·½°¸½øÐзÖÎö£¬ºóÃæ»¹»á¼òµ¥Ìáµ½µÎµÎ¡¢ÌÔ±¦¡¢Î¢ÐŵÄ×é¼þ»¯¼Ü¹¹£¬×îºó»á¼òµ¥ËµÒ»ÏÂÎÒ¹«Ë¾Éè¼ÆµÄ×é¼þ»¯¼Ü¹¹¡£

ռλͼ
×é¼þ»¯¼Ü¹¹µÄÓÉÀ´
Ëæ×ÅÒÆ¶¯»¥ÁªÍøµÄ²»¶Ï·¢Õ¹£¬ºÜ¶à³ÌÐò´úÂëÁ¿ºÍÒµÎñÔ½À´Ô½¶à£¬ÏÖÓмܹ¹ÒѾ²»ÊʺϹ«Ë¾ÒµÎñµÄ·¢Õ¹ËÙ¶ÈÁË£¬ºÜ¶à¶¼ÃæÁÙ×ÅÖØ¹¹µÄÎÊÌâ¡£
ÔÚ¹«Ë¾ÏîÄ¿¿ª·¢ÖУ¬Èç¹ûÏîÄ¿±È½ÏС£¬ÆÕͨµÄµ¥¹¤³Ì+MVC¼Ü¹¹¾Í¿ÉÒÔÂú×ã´ó¶àÊýÐèÇóÁË¡£µ«ÊÇÏñÌÔ±¦¡¢Ä¢¹½½Ö¡¢Î¢ÐÅÕâÑùµÄ´óÐÍÏîÄ¿£¬ÔÓеĵ¥¹¤³Ì¼Ü¹¹¾Í²»×ãÒÔÂú×ã¼Ü¹¹ÐèÇóÁË¡£
¾ÍÄÃÌÔ±¦À´Ëµ£¬ÌÔ±¦ÔÚ13Ä꿪ÆôµÄ¡°All in ÎÞÏß¡±Õ½ÂÔÖУ¬¾Í½«°¢Àïϵ´ó¶àÊýÒµÎñ¶¼¼ÓÈëµ½ÊÖ»úÌÔ±¦ÖУ¬Ê¹¿Í»§¶Ë³öÏÖÁËÒµÎñµÄ±¬·¢¡£ÔÚÕâÖÖÇé¿öÏ£¬µ¥¹¤³Ì¼Ü¹¹ÔòÒѾԶԶ²»ÄÜÂú×ãÏÖÓÐÒµÎñÐèÇóÁË¡£ËùÒÔÔÚÕâÖÖÇé¿öÏ£¬ÌÔ±¦ÔÚ13Ä꿪ÆôÁ˲å¼þ»¯¼Ü¹¹µÄÖØ¹¹£¬ºóÀ´ÔÚ14ÄêÓÀ´ÁËÊÖ»úÌÔ±¦ÓÐÊ·ÒÔÀ´×î´ó¹æÄ£µÄÖØ¹¹£¬½«Æä³¹µ×ÖØ¹¹Îª×é¼þ»¯¼Ü¹¹¡£
Ä¢¹½½ÖµÄ×é¼þ»¯¼Ü¹¹
ÔÒò
ÔÚÒ»¸öÏîĿԽÀ´Ô½´ó£¬¿ª·¢ÈËÔ±Ô½À´Ô½¶àµÄÇé¿öÏ£¬ÏîÄ¿»áÓöµ½ºÜ¶àÎÊÌâ¡£
ÒµÎñÄ£¿é¼ä»®·Ö²»ÇåÎú£¬Ä£¿éÖ®¼äñîºÏ¶ÈºÜ´ó£¬·Ç³£ÄÑά»¤¡£
ËùÓÐÄ£¿é´úÂë¶¼±àдÔÚÒ»¸öÏîÄ¿ÖУ¬²âÊÔij¸öÄ£¿é»ò¹¦ÄÜ£¬ÐèÒª±àÒëÔËÐÐÕû¸öÏîÄ¿¡£

ñîºÏÑÏÖØµÄ¹¤³Ì
ΪÁ˽â¾öÉÏÃæµÄÎÊÌ⣬¿ÉÒÔ¿¼ÂǼÓÒ»¸öÖмä²ãÀ´Ðµ÷Ä£¿é¼äµÄµ÷Óã¬ËùÓеÄÄ£¿é¼äµÄµ÷Óö¼»á¾¹ýÖмä²ãÖÐת¡£(×¢Òâ¿´Á½ÕÅͼµÄ¼ýÍ··½Ïò)

Ìí¼ÓÖмä²ã
µ«ÊÇ·¢ÏÖÔö¼ÓÕâ¸öÖмä²ãºó£¬ñîºÏ»¹ÊÇ´æÔڵġ£Öмä²ã¶Ô±»µ÷ÓÃÄ£¿é´æÔÚñîºÏ£¬ÆäËûÄ£¿éÒ²ÐèÒªñîºÏÖмä²ã²ÅÄÜ·¢Æðµ÷Óá£ÕâÑù»¹ÊÇ´æÔÚ֮ǰµÄÏ໥ñîºÏµÄÎÊÌ⣬¶øÇÒ±¾ÖÊÉϱÈ֮ǰ¸üÂé·³ÁË¡£
´óÌå½á¹¹
ËùÒÔÓ¦¸Ã×öµÄÊÇ£¬Ö»ÈÃÆäËûÄ£¿é¶ÔÖмä²ã²úÉúñîºÏ¹ØÏµ£¬Öмä²ã²»¶ÔÆäËûÄ£¿é·¢ÉúñîºÏ¡£
¶ÔÓÚÕâ¸öÎÊÌ⣬¿ÉÒÔ²ÉÓÃ×é¼þ»¯µÄ¼Ü¹¹£¬½«Ã¿¸öÄ£¿é×÷Ϊһ¸ö×é¼þ¡£²¢ÇÒ½¨Á¢Ò»¸öÖ÷ÏîÄ¿£¬Õâ¸öÖ÷ÏîÄ¿¸ºÔ𼯳ÉËùÓÐ×é¼þ¡£ÕâÑù´øÀ´µÄºÃ´¦ÊǺܶàµÄ£º
ÒµÎñ»®·Ö¸ü¼ÑÇåÎú£¬ÐÂÈ˽ÓÊÖ¸ü¼ÑÈÝÒ×£¬¿ÉÒÔ°´×é¼þ·ÖÅ俪·¢ÈÎÎñ¡£
ÏîÄ¿¿Éά»¤ÐÔ¸üÇ¿£¬Ìá¸ß¿ª·¢Ð§ÂÊ¡£
¸üºÃÅŲéÎÊÌ⣬ij¸ö×é¼þ³öÏÖÎÊÌ⣬ֱ½Ó¶Ô×é¼þ½øÐд¦Àí¡£
¿ª·¢²âÊÔ¹ý³ÌÖУ¬¿ÉÒÔÖ»±àÒë×Ô¼ºÄDz¿·Ö´úÂ룬²»ÐèÒª±àÒëÕû¸öÏîÄ¿´úÂë¡£

×é¼þ»¯½á¹¹
½øÐÐ×é¼þ»¯¿ª·¢ºó£¬¿ÉÒÔ°Ñÿ¸ö×é¼þµ±×öÒ»¸ö¶ÀÁ¢µÄapp£¬Ã¿¸ö×é¼þÉõÖÁ¿ÉÒÔ²ÉÈ¡²»Í¬µÄ¼Ü¹¹£¬ÀýÈç·Ö±ðʹÓÃMVVM¡¢MVC¡¢MVCSµÈ¼Ü¹¹¡£
MGJRouter·½°¸
Ä¢¹½½Öͨ¹ýMGJRouterʵÏÖÖмä²ã£¬Í¨¹ýMGJRouter½øÐÐ×é¼þ¼äµÄÏûϢת·¢£¬´ÓÃû×ÖÉÏÀ´Ëµ¸üÏñÊÇ·ÓÉÆ÷¡£ÊµÏÖ·½Ê½´óÖÂÊÇ£¬ÔÚÌṩ·þÎñµÄ×é¼þÖÐÌáǰע²áblock£¬È»ºóÔÚµ÷Ó÷½×é¼þÖÐͨ¹ýURLµ÷ÓÃblock£¬ÏÂÃæÊǵ÷Ó÷½Ê½¡£
¼Ü¹¹Éè¼Æ

MGJRouter×é¼þ»¯¼Ü¹¹
MGJRouterÊÇÒ»¸öµ¥Àý¶ÔÏó£¬ÔÚÆäÄÚ²¿Î¬»¤×ÅÒ»¸ö¡°URL -> block¡±¸ñʽµÄ×¢²á±í£¬Í¨¹ýÕâ¸ö×¢²á±íÀ´±£´æ·þÎñ·½×¢²áµÄblock£¬ÒÔ¼°Ê¹µ÷Ó÷½¿ÉÒÔͨ¹ýURLÓ³Éä³öblock£¬²¢Í¨¹ýMGJRouter¶Ô·þÎñ·½·¢Æðµ÷Óá£
ÔÚ·þÎñ·½×é¼þÖж¼¶ÔÍâÌṩһ¸ö½Ó¿ÚÀ࣬ÔÚ½Ó¿ÚÀàÄÚ²¿ÊµÏÖblockµÄ×¢²á¹¤×÷£¬ÒÔ¼°block¶ÔÍâÌṩ·þÎñµÄ´úÂëʵÏÖ¡£Ã¿Ò»¸öblock¶¼¶ÔÓ¦×ÅÒ»¸öURL£¬µ÷Ó÷½¿ÉÒÔͨ¹ýURL¶Ôblock·¢Æðµ÷Óá£
ÔÚ³ÌÐò¿ªÊ¼ÔËÐÐʱ£¬ÐèÒª½«ËùÓзþÎñ·½µÄ½Ó¿ÚÀàʵÀý»¯£¬ÒÔÍê³ÉÕâ¸ö×¢²á¹¤×÷£¬Ê¹MGJRouterÖÐËùÓзþÎñ·½µÄblock¿ÉÒÔÕý³£Ìṩ·þÎñ¡£ÔÚÕâ¸ö·þÎñ×¢²áÍê³Éºó£¬¾Í¿ÉÒÔ±»µ÷Ó÷½µ÷Æð²¢Ìṩ·þÎñ¡£
Ä¢¹½½ÖÏîĿʹÓÃgit×÷Ϊ°æ±¾¿ØÖƹ¤¾ß£¬½«Ã¿¸ö×é¼þ¶¼µ±×öÒ»¸ö¶ÀÁ¢¹¤³Ì£¬²¢½¨Á¢Ö÷ÏîÄ¿À´¼¯³ÉËùÓÐ×é¼þ¡£¼¯³É·½Ê½ÊÇÔÚÖ÷ÏîÄ¿ÖÐͨ¹ýCocoaPodsÀ´¼¯³É£¬½«ËùÓÐ×é¼þµ±×ö¶þ·½¿â¼¯³Éµ½ÏîÄ¿ÖС£ÏêϸµÄ¼¯³É¼¼ÊõµãÔÚÏÂÃæ¡°±ê×¼×é¼þ»¯¼Ü¹¹Éè¼Æ¡±Õ½ÚÖлὲµ½¡£
MGJRouterµ÷ÓÃ
´úÂëÄ£Äâ¶ÔÏêÇéÒ³µÄ×¢²á¡¢µ÷Óã¬ÔÚµ÷Óùý³ÌÖд«µÝid²ÎÊý¡£ÏÂÃæÊÇ×¢²áµÄʾÀý´úÂ룺
ͨ¹ýopenURL:·½·¨´«ÈëµÄURL²ÎÊý£¬¶ÔÏêÇéÒ³ÒѾע²áµÄblock·½·¨·¢Æðµ÷Óᣵ÷Ó÷½Ê½ÀàËÆÓÚGETÇëÇó£¬URLµØÖ·ºóÃæÆ´½Ó²ÎÊý¡£
[MGJRouter openURL:@"mgj://detail?id=404"];
Ò²¿ÉÒÔͨ¹ý×ֵ䷽ʽ´«²Î£¬MGJRouterÌṩÁË´øÓÐ×Öµä²ÎÊýµÄ·½·¨£¬ÕâÑù¾Í¿ÉÒÔ´«µÝ·Ç×Ö·û´®Ö®ÍâµÄÆäËûÀàÐͲÎÊý¡£
[MGJRouter openURL:@"mgj://detail?"withParam:@{@"id":
@"404"}];
×é¼þ¼ä´«Öµ
ÓеÄʱºò×é¼þ¼äµ÷Óùý³ÌÖУ¬ÐèÒª·þÎñ·½ÔÚÍê³Éµ÷Óú󷵻ØÏàÓ¦µÄ²ÎÊý¡£Ä¢¹½½ÖÌṩÁËÁíÍâµÄ·½·¨£¬×¨ÃÅÀ´Íê³ÉÕâ¸ö²Ù×÷¡£
[ MGJRouter registerURLPattern : @" ; mgj :// cart / ordercount "toObjectHandler :^ id ( NSDictionary * routerParamters ) {
return @ 42 ; }];
ͨ¹ýÏÂÃæµÄ·½Ê½·¢Æðµ÷Ó㬲¢»ñÈ¡·þÎñ·½·µ»ØµÄ·µ»ØÖµ£¬Òª×öµÄ¾ÍÊÇ´«µÝÕýÈ·µÄURLºÍ²ÎÊý¼´¿É¡£
NSNumber *orderCount= [ MGJRouter objectForURL : @" ; mgj : // cart / ordercount "];
¶ÌÁ´¹ÜÀí
Õâʱºò»á·¢ÏÖÒ»¸öÎÊÌ⣬ÔÚÄ¢¹½½Ö×é¼þ»¯¼Ü¹¹ÖУ¬´æÔÚÁ˺ܶàÓ²±àÂëµÄURLºÍ²ÎÊý¡£ÔÚ´úÂëʵÏÖ¹ý³ÌÖÐURL±àд³ö´í»áµ¼Öµ÷ÓÃʧ°Ü£¬¶øÇÒ²ÎÊýÊÇÒ»¸ö×ÖµäÀàÐÍ£¬µ÷Ó÷½²»ÖªµÀ·þÎñ·½ÐèÒªÄÄЩ²ÎÊý£¬ÕâЩ¶¼ÊǸöÎÊÌâ¡£
¶ÔÓÚÕâЩÊý¾ÝµÄ¹ÜÀí£¬Ä¢¹½½Ö¿ª·¢ÁËÒ»¸öwebÒ³Ãæ£¬Õâ¸öwebÒ³ÃæÍ³Ò»À´¹ÜÀíËùÓеÄURLºÍ²ÎÊý£¬AndroidºÍiOS¶¼Ê¹ÓÃÕâÒ»Ì×URL£¬¿ÉÒÔ±£³ÖͳһÐÔ¡£
»ù´¡×é¼þ
ÔÚÏîÄ¿ÖдæÔںܶ๫¹²²¿·ÖµÄ¶«Î÷£¬ÀýÈç·â×°µÄÍøÂçÇëÇó¡¢»º´æ¡¢Êý¾Ý´¦ÀíµÈ¹¦ÄÜ£¬ÒÔ¼°ÏîÄ¿ÖÐËùÓõ½µÄ×ÊÔ´Îļþ¡£
Ä¢¹½½Ö½«ÕâЩ²¿·ÖÒ²µ±×ö×é¼þ£¬»®·ÖΪ»ù´¡×é¼þ£¬Î»ÓÚÒµÎñ×é¼þϲ㡣ËùÓÐÒµÎñ×é¼þ¶¼Ê¹ÓÃͬһ¸ö»ù´¡×é¼þ£¬Ò²¿ÉÒÔ±£Ö¤¹«¹²²¿·ÖµÄͳһÐÔ¡£
Protocol·½°¸
ÕûÌå¼Ü¹¹
Protocol·½°¸µÄÖмä¼þ
ΪÁ˽â¾öMGJRouter·½°¸ÖÐURLÓ²±àÂ룬ÒÔ¼°×Öµä²ÎÊýÀàÐͲ»Ã÷È·µÈÎÊÌ⣬̹½½ÖÔÚÔÓÐ×é¼þ»¯·½°¸µÄ»ù´¡ÉÏÍÆ³öÁËProtocol·½°¸¡£Protocol·½°¸ÓÉÁ½²¿·Ö×é³É£¬½øÐÐ×é¼þ¼äͨÐÅµÄ ModuleManager ÀàÒÔ¼° MGJComponentProtocol ÐÒéÀà¡£
ͨ¹ýÖмä¼þModuleManager½øÐÐÏûÏ¢µÄµ÷ÓÃת·¢£¬ÔÚModuleManagerÄÚ²¿Î¬»¤Ò»ÕÅÓ³Éä±í£¬Ó³Éä±íÓÉ֮ǰµÄ"URL
-> block"±ä³É"Protocol -> Class"¡£
ÔÚÖмä¼þÖд´½¨ MGJComponentProtocol Îļþ£¬·þÎñ·½×é¼þ½«¿ÉÒÔÓÃÀ´µ÷Óõķ½·¨¶¼¶¨ÒåÔÚProtocolÖУ¬½«ËùÓзþÎñ·½µÄProtocol¶¼·Ö±ð¶¨Òåµ½ MGJComponentProtocol ÎļþÖУ¬Èç¹ûÐÒé±È½Ï¶àÒ²¿ÉÒÔ·Ö¿ª¼¸¸öÎļþ¶¨Òå¡£ÕâÑùËùÓе÷Ó÷½ÒÀÈ»ÊÇÖ»ÒÀÀµÖмä¼þ£¬²»ÐèÒªÒÀÀµ³ýÖмä¼þÖ®ÍâµÄÆäËû×é¼þ¡£
Protocol·½°¸ÖÐÿ¸ö×é¼þÒ²ÐèÒªÒ»¸ö¡°½Ó¿ÚÀࡱ£¬´ËÀฺÔðʵÏÖµ±Ç°×é¼þ¶ÔÓ¦µÄÐÒé·½·¨£¬Ò²¾ÍÊǶÔÍâÌṩ·þÎñµÄʵÏÖ¡£ÔÚ³ÌÐò¿ªÊ¼ÔËÐÐʱ½«×ÔÉíµÄClass×¢²áµ½ModuleManagerÖУ¬²¢½«Protocol·´Éä³ö×Ö·û´®µ±×ökey¡£Õâ¸ö×¢²á¹ý³ÌºÍMGJRouterÊÇÀàËÆµÄ£¬¶¼ÐèÒªÌáǰע²á·þÎñ¡£
ʾÀý´úÂë
´´½¨MGJUserImplÀ൱×öUserÄ£¿éµÄ·þÎñÀ࣬²¢ÔÚ MGJComponentProtocol.hÖж¨Òå MGJUserProtocol ÐÒ飬ÓÉMGJUserImplÀàʵÏÖÐÒéÖж¨ÒåµÄ·½·¨£¬Íê³É¶ÔÍâÌṩ·þÎñµÄ¹ý³Ì¡£ÏÂÃæÊÇÐÒ鶨Ò壺
@ protocol MGJU serProtocol- (NSString*)getUserName;@end
Class×ñÊØÐÒ鲢ʵÏÖ¶¨ÒåµÄ·½·¨£¬Íâ½çͨ¹ýProtocol»ñÈ¡µÄClassʵÀý»¯Îª¶ÔÏ󣬵÷Ó÷þÎñ·½ÊµÏÖµÄÐÒé·½·¨¡£
ModuleManagerµÄÐÒé×¢²á·½·¨£¬×¢²áʱ½«Protocol·´ÉäΪ×Ö·û´®µ±×ö´æ´¢µÄkey£¬½«ÊµÏÖÐÒéµÄClassµ±×öÖµ´æ´¢¡£Í¨¹ýProtocolÈ¡ClassµÄʱºò£¬¾ÍÊÇͨ¹ýProtocol´ÓModuleManagerÖн«ClassÓ³Éä³öÀ´¡£
[ModuleManager registerClass:MGJUserImpl forProtocol:@protocol(MGJUserProtocol)];
µ÷ÓÃʱͨ¹ýProtocol´ÓModuleManagerÖÐÓ³Éä³ö×¢²áµÄClass£¬½«»ñÈ¡µ½µÄClassʵÀý»¯£¬²¢µ÷ÓÃClassʵÏÖµÄÐÒé·½·¨Íê³É·þÎñµ÷Óá£
Class cls = [[ ModuleManager sharedInstance] classForProtocol : @protocol (MGJUserProtocol) ];id
userComponent = [[cls alloc]init] ; NSString * userName
=[userComponent getUserName ];
ÕûÌåµ÷ÓÃÁ÷³Ì
Ä¢¹½½ÖÊÇOpenURLºÍProtocol»ìÓõķ½Ê½£¬Á½ÖÖʵÏֵĵ÷Ó÷½Ê½²»Í¬£¬µ«´óÌåµ÷ÓÃÂß¼ºÍʵÏÖ˼·ÀàËÆ£¬ËùÒÔÏÂÃæµÄµ÷ÓÃÁ÷³Ì¶þÕ߲¶à¡£ÔÚOpenURL²»ÄÜÂú×ãÐèÇó»òµ÷Óò»·½±ãʱ£¬¾Í¿ÉÒÔͨ¹ýProtocolµÄ·½Ê½µ÷Óá£
ÔÚ½øÈë³ÌÐòºó£¬ÏÈʹÓÃMGJRouter¶Ô·þÎñ·½×é¼þ½øÐÐ×¢²á¡£Ã¿¸öURL¶ÔÓ¦Ò»¸öblockµÄʵÏÖ£¬blockÖеĴúÂë¾ÍÊÇ·þÎñ·½¶ÔÍâÌṩµÄ·þÎñ£¬µ÷Ó÷½¿ÉÒÔͨ¹ýURLµ÷ÓÃÕâ¸ö·þÎñ¡£
µ÷Ó÷½Í¨¹ýMGJRouterµ÷ÓÃopenURL:·½·¨£¬²¢½«±»µ÷ÓôúÂë¶ÔÓ¦µÄURL´«È룬MGJRouter»á¸ù¾ÝURL²éÕÒ¶ÔÓ¦µÄblockʵÏÖ£¬´Ó¶øµ÷Ó÷þÎñ·½×é¼þµÄ´úÂë½øÐÐͨÐÅ¡£
µ÷ÓúÍ×¢²áblockʱ£¬blockÓÐÒ»¸ö×ÖµäÓÃÀ´´«µÝ²ÎÊý¡£ÕâÑùµÄÓÅÊÆ¾ÍÊDzÎÊýÀàÐͺÍÊýÁ¿ÀíÂÛÉÏÊDz»ÊÜÏÞÖÆµÄ£¬µ«ÊÇÐèÒªºÜ¶àÓ²±àÂëµÄkeyÃûÔÚÏîÄ¿ÖС£
ÄÚ´æ¹ÜÀí
Ä¢¹½½Ö×é¼þ»¯·½°¸ÓÐÁ½ÖÖ£¬ProtocolºÍMGJRouterµÄ·½Ê½£¬µ«¶¼ÐèÒª½øÐÐregister²Ù×÷¡£Protocol×¢²áµÄÊÇClass£¬MGJRouter×¢²áµÄÊÇBlock£¬×¢²á±íÊÇÒ»¸öNSMutableDictionaryÀàÐ͵Ä×ֵ䣬¶ø×ÖµäµÄÓµÓÐÕßÓÖÊÇÒ»¸öµ¥Àý¶ÔÏó£¬ÕâÑù»áÔì³ÉÄÚ´æµÄ³£×¤¡£
ÏÂÃæÊǶÔÁ½ÖÖʵÏÖ·½Ê½ÄÚ´æÏûºÄµÄ·ÖÎö£º
Ê×ÏÈ˵һÏÂblockʵÏÖ·½Ê½¿ÉÄܵ¼ÖµÄÄÚ´æÎÊÌ⣬blockÈç¹ûʹÓò»µ±£¬ºÜÈÝÒ×Ôì³ÉÑ»·ÒýÓõÄÎÊÌâ¡£
¾¹ý±©Á¦²âÊÔ£¬Ö¤Ã÷²¢²»»áµ¼ÖÂÄÚ´æÎÊÌâ¡£±»±£´æÔÚ×ÖµäÖÐÊÇÒ»¸öblock¶ÔÏ󣬶øblock¶ÔÏó±¾Éí²¢²»»áÕ¼ÓöàÉÙÄÚ´æ¡£ÔÚµ÷ÓÃblockºó»á¶ÔblockÌåÖеķ½·¨½øÐÐÖ´ÐУ¬Ö´ÐÐÍê³ÉºóblockÌåÖеĶÔÏóÊÍ·Å¡£
¶øblock×ÔÉíµÄʵÏÖÖ»ÊÇÒ»¸ö½á¹¹Ì壬Ҳ¾ÍÏ൱ÓÚ×ÖµäÖдæ·ÅµÄÊǺܶà½á¹¹Ì壬ËùÒÔÄÚ´æµÄÕ¼Óò¢²»ÊǺܴó¡£
¶ÔÓÚÐÒéÕâÖÖʵÏÖ·½Ê½£¬ºÍblockÄڴ泣פ·½Ê½²î²»¶à¡£Ö»Êǽ«´æ´¢µÄblock¶ÔÏó»»³ÉClass¶ÔÏó£¬Èç¹û²»ÊÇÒѾʵÀý»¯µÄ¶ÔÏó£¬ÄÚ´æÕ¼Óû¹ÊDZȽÏСµÄ¡£
casatwy×é¼þ»¯·½°¸
ÕûÌå¼Ü¹¹
casatwy×é¼þ»¯·½°¸·ÖΪÁ½ÖÖµ÷Ó÷½Ê½£¬Ô¶³Ìµ÷Óúͱ¾µØµ÷Ó㬶ÔÓÚÁ½¸ö²»Í¬µÄµ÷Ó÷½Ê½·Ö±ð¶ÔÓ¦Á½¸ö½Ó¿Ú¡£
Ô¶³Ìµ÷ÓÃͨ¹ýAppDelegate´úÀí·½·¨´«µÝµ½µ±Ç°Ó¦Óú󣬵÷ÓÃÔ¶³Ì½Ó¿Ú²¢ÔÚÄÚ²¿×öһЩ´¦Àí£¬´¦ÀíÍê³Éºó»áÔÚÔ¶³Ì½Ó¿ÚÄÚ²¿µ÷Óñ¾µØ½Ó¿Ú£¬ÒÔʵÏÖ±¾µØµ÷ÓÃΪԶ³Ìµ÷Ó÷þÎñ¡£
±¾µØµ÷ÓÃÓÉperformTarget:action:params:·½·¨¸ºÔ𣬵«µ÷Ó÷½Ò»°ã²»Ö±½Óµ÷ÓÃperformTarget:·½·¨¡£CTMediator»á¶ÔÍâÌṩÃ÷È·²ÎÊýºÍ·½·¨ÃûµÄ·½·¨£¬ÔÚ·½·¨ÄÚ²¿µ÷ÓÃperformTarget:·½·¨ºÍ²ÎÊýµÄת»»¡£

casatwyÌá³öµÄ×é¼þ»¯¼Ü¹¹
¼Ü¹¹Éè¼ÆË¼Â·
casatwyÊÇͨ¹ýCTMediatorÀàʵÏÖ×é¼þ»¯µÄ£¬ÔÚ´ËÀàÖжÔÍâÌṩÃ÷È·²ÎÊýÀàÐ͵Ľӿڣ¬½Ó¿ÚÄÚ²¿Í¨¹ýperformTarget·½·¨µ÷Ó÷þÎñ·½×é¼þµÄTarget¡¢Action¡£ÓÉÓÚCTMediatorÀàµÄµ÷ÓÃÊÇͨ¹ýruntimeÖ÷¶¯·¢ÏÖ·þÎñµÄ£¬ËùÒÔ·þÎñ·½¶Ô´ËÀàÊÇÍêÈ«½âñîµÄ¡£
µ«Èç¹ûCTMediatorÀà¶ÔÍâÌṩµÄ·½·¨¶¼·ÅÔÚ´ËÀàÖУ¬½«»á¶ÔCTMediatorÔì³É¼«´óµÄ¸ºµ£ºÍ´úÂëÁ¿¡£½â¾ö·½·¨¾ÍÊǶÔÿ¸ö·þÎñ·½×é¼þ´´½¨Ò»¸öCTMediatorµÄCategory£¬²¢½«¶Ô·þÎñ·½µÄperformTargetµ÷Ó÷ÅÔÚ¶ÔÓ¦µÄCategoryÖУ¬ÕâЩCategory¶¼ÊôÓÚCTMediatorÖмä¼þ£¬´Ó¶øÊµÏÖÁ˸йÙÉϵĽӿڷÖÀë¡£

casatwy×é¼þ»¯ÊµÏÖϸ½Ú
¶ÔÓÚ·þÎñ·½µÄ×é¼þÀ´Ëµ£¬Ã¿¸ö×é¼þ¶¼Ìṩһ¸ö»ò¶à¸öTargetÀ࣬ÔÚTargetÀàÖÐÉùÃ÷Action·½·¨¡£
Target ÀàÊǵ±Ç°×é¼þ¶ÔÍâÌṩµÄÒ»¸ö¡°·þÎñÀࡱ£¬Target½«µ±Ç°×é¼þÖÐËùÓеķþÎñ¶¼¶¨ÒåÔÚÀïÃæ£¬CTMediatorͨ¹ýruntimeÖ÷¶¯·¢ÏÖ·þÎñ¡£
ÔÚTargetÖеÄËùÓÐAction·½·¨£¬¶¼Ö»ÓÐÒ»¸ö×Öµä²ÎÊý£¬ËùÒÔ¿ÉÒÔ´«µÝµÄ²ÎÊýºÜÁé»î£¬ÕâÒ²ÊÇ
casatwy Ìá³öµÄÈ¥Model»¯µÄ¸ÅÄî¡£ÔÚActionµÄ·½·¨ÊµÏÖÖУ¬¶Ô´«½øÀ´µÄ×Öµä²ÎÊý½øÐнâÎö£¬ÔÙµ÷ÓÃ×é¼þÄÚ²¿µÄÀàºÍ·½·¨¡£
¼Ü¹¹·ÖÎö
casatwyΪÎÒÃÇÌṩÁËÒ»¸öDemo£¬Í¨¹ýÕâ¸öDemo¿ÉÒԺܺõÄÀí½âcasatwyµÄÉè¼ÆË¼Â·£¬ÏÂÃæ°´ÕÕÎÒµÄÀí½â½²½âÒ»ÏÂÕâ¸öDemo¡£ÎļþĿ¼
´ò¿ªDemoºó¿ÉÒÔ¿´µ½ÎļþĿ¼·Ç³£Çå³þ£¬ÔÚÉÏͼÖÐÓÃÀ¶¿ò¿ò³öÀ´µÄ¾ÍÊÇÖмä¼þ²¿·Ö£¬ºì¿ò¿ò³öÀ´µÄ¾ÍÊÇÒµÎñ×é¼þ²¿·Ö¡£ÎÒ¶Ôÿ¸öÎļþ¼Ð×öÁËÒ»¸ö¼òµ¥µÄ×¢ÊÍ£¬°üº¬ÁËÆäÔڼܹ¹ÖеÄÖ°Ôð¡£
ÔÚCTMediatorÖж¨ÒåÔ¶³Ìµ÷Óúͱ¾µØµ÷ÓõÄÁ½¸ö·½·¨£¬ÆäËûÒµÎñÏà¹ØµÄµ÷ÓÃÓÉCategoryÍê³É¡£
// Ô¶³ÌAppµ÷ÓÃÈë¿Ú- (id) performActionWithUrl
: (NSURL*) urlcompletion : (void(^) ( NSDictionary
*info))completion;// ±¾µØ×é¼þµ÷ÓÃÈë¿Ú-(id) performTarget :
(NSString*)targetNameaction:(NSString*) actionNameparams
: ( NSDictionary* ) params;
ÔÚCTMediatorÖж¨ÒåµÄModuleAµÄCategory£¬¶ÔÍâÌṩÁËÒ»¸ö»ñÈ¡¿ØÖÆÆ÷²¢Ìø×ªµÄ¹¦ÄÜ£¬ÏÂÃæÊÇ´úÂëʵÏÖ¡£ÓÉÓÚcasatwyµÄ·½°¸ÖÐʹÓÃperformTargetµÄ·½Ê½½øÐе÷Óã¬ËùÒÔÉæ¼°µ½ºÜ¶àÓ²±àÂë×Ö·û´®µÄÎÊÌ⣬casatwy²ÉÈ¡¶¨Òå³£Á¿×Ö·û´®À´½â¾öÕâ¸öÎÊÌ⣬ÕâÑù¹ÜÀíÒ²¸ü·½±ã¡£
ÏÂÃæÊÇModuleA×é¼þÖÐÌṩµÄ·þÎñ£¬±»¶¨ÒåÔÚTarget_AÀàÖУ¬ÕâЩ·þÎñ¿ÉÒÔ±»CTMediatorͨ¹ýruntimeµÄ·½Ê½µ÷Óã¬Õâ¸ö¹ý³Ì¾Í½Ð×ö·¢ÏÖ·þÎñ¡£
ÎÒÃÇ·¢ÏÖ£¬ÔÚÕâ¸ö·½·¨ÖÐÆäʵ×öÁ˲ÎÊý´¦ÀíºÍÄÚ²¿µ÷ÓõŦÄÜ£¬ÕâÑù¾Í¿ÉÒÔ±£Ö¤×é¼þÄÚ²¿µÄÒµÎñ²»ÊÜÍⲿӰÏ죬¶ÔÄÚ²¿ÒµÎñûÓÐÇÖÈëÐÔ¡£
- (UIViewController *)Action_nativeFetchDetailViewController
: (NSDictionary *) params { // ¶Ô´«¹ýÀ´µÄ×Öµä²ÎÊý½øÐнâÎö£¬²¢µ÷ÓÃModuleAÄÚ²¿µÄ´úÂë
DemoModuleADetailViewController * viewController =
[[DemoModuleADetailViewController alloc] init] ; viewController
. valueLabel . text = params [@ "key" ];
returnviewController ; }
ÃüÃû¹æ·¶
ÔÚ´óÐÍÏîÄ¿ÖдúÂëÁ¿±È½Ï´ó£¬ÐèÒª±ÜÃâÃüÃû³åÍ»µÄÎÊÌâ¡£¶ÔÓÚÕâ¸öÎÊÌâcasatwy²ÉÈ¡µÄÊǼÓǰ׺µÄ·½Ê½£¬´ÓcasatwyµÄDemoÖÐÒ²¿ÉÒÔ¿´³ö£¬Æä×é¼þModuleAµÄTargetÃüÃûΪTarget_A£¬±»µ÷ÓõÄActionÃüÃûΪAction_nativeFetchDetailViewController:¡£
casatwy½«ÀàºÍ·½·¨µÄÃüÃû£¬¶¼Í³Ò»°´Õկ书ÄÜ×öÇø·Öµ±×öǰ׺£¬ÕâÑùºÜºÃµÄ½«×é¼þÏà¹ØºÍ×é¼þÄÚ²¿´úÂë½øÐÐÁË»®·Ö¡£
±ê×¼×é¼þ»¯¼Ü¹¹Éè¼Æ
Õâ¸öÕ½ڽÐ×ö¡°±ê×¼×é¼þ»¯¼Ü¹¹Éè¼Æ¡±£¬¶ÔÓÚÏîÄ¿¼Ü¹¹À´Ëµ²¢Ã»Óоø¶ÔÒâÒåµÄ±ê׼֮˵¡£ÕâÀï˵µ½µÄ¡°±ê×¼×é¼þ»¯¼Ü¹¹Éè¼Æ¡±Ö»ÊÇÒòΪ²ÉÈ¡ÕâÑùµÄ·½Ê½µÄÈ˱Ƚ϶࣬ÇÒÕâÖÖ·½Ê½Ïà±È¶øÑԽϺÏÀí¡£
ÔÚÉÏÃæÎÄÕÂÖÐÌáµ½ÁËcasatwy·½°¸µÄCTMediator£¬Ä¢¹½½Ö·½°¸µÄMGJRouterºÍModuleManager£¬ÏÂÃæÍ³³ÆÎªÖмä¼þ¡£
ÕûÌå¼Ü¹¹
×é¼þ»¯¼Ü¹¹ÖУ¬Ê×ÏÈÓÐÒ»¸öÖ÷¹¤³Ì£¬Ö÷¹¤³Ì¸ºÔ𼯳ÉËùÓÐ×é¼þ¡£Ã¿¸ö×é¼þ¶¼ÊÇÒ»¸öµ¥¶ÀµÄ¹¤³Ì£¬´´½¨²»Í¬µÄgit˽ÓвֿâÀ´¹ÜÀí£¬Ã¿¸ö×é¼þ¶¼ÓжÔÓ¦µÄ¿ª·¢ÈËÔ±¸ºÔ𿪷¢¡£¿ª·¢ÈËÔ±Ö»ÐèÒª¹Ø×¢ÓëÆäÏà¹Ø×é¼þµÄ´úÂ룬ÆäËûÒµÎñ´úÂëºÍÆäÎ޹أ¬À´ÐÂÈËÒ²ºÃÉÏÊÖ¡£
×é¼þµÄ»®·ÖÐèҪעÒâ×é¼þÁ£¶È£¬Á£¶È¸ù¾ÝÒµÎñ¿É´ó¿ÉС¡£×é¼þ»®·ÖºóÊôÓÚÒµÎñ×é¼þ£¬¶ÔÓÚһЩ¶à¸ö×é¼þ¹²Í¬µÄ¶«Î÷£¬ÀýÈçÍøÂç¡¢Êý¾Ý¿âÖ®ÀàµÄ£¬Ó¦¸Ã»®·Öµ½µ¥¶ÀµÄ×é¼þ»ò»ù´¡×é¼þÖС£¶ÔÓÚͼƬ»òÅäÖñíÕâÑùµÄ×ÊÔ´Îļþ£¬Ó¦¸ÃÔÙµ¥¶À»®·ÖÒ»¸ö×ÊÔ´×é¼þ£¬ÕâÑù±ÜÃâ×ÊÔ´µÄÖØ¸´ÐÔ¡£
·þÎñ·½×é¼þ¶ÔÍâÌṩ·þÎñ£¬ÓÉÖмä¼þµ÷Óûò·¢ÏÖ·þÎñ£¬·þÎñ¶Ôµ±Ç°×é¼þÎÞÇÖÈëÐÔ£¬Ö»¸ºÔð¶Ô´«µÝ¹ýÀ´µÄÊý¾Ý½øÐнâÎöºÍ×é¼þÄÚµ÷ÓõŦÄÜ¡£ÐèÒª±»ÆäËû×é¼þµ÷ÓõÄ×é¼þ¶¼ÊÇ·þÎñ·½£¬·þÎñ·½Ò²¿ÉÒÔµ÷ÓÃÆäËû×é¼þµÄ·þÎñ¡£
ͨ¹ýÕâÑùµÄ×é¼þ»®·Ö£¬×é¼þµÄ¿ª·¢½ø¶È²»»áÊÜÆäËûÒµÎñµÄÓ°Ï죬¿ÉÒÔ¶à¸ö×é¼þµ¥¶ÀµÄ²¢Ðпª·¢¡£×é¼þ¼äµÄͨÐŶ¼½»¸øÖмä¼þÀ´½øÐУ¬ÐèҪͨÐŵÄÀàÖ»ÐèÒª½Ó´¥Öмä¼þ£¬¶øÖмä¼þ²»ÐèÒªñîºÏÆäËû×é¼þ£¬Õâ¾ÍʵÏÖÁË×é¼þ¼äµÄ½âñî¡£Öмä¼þ¸ºÔð´¦ÀíËùÓÐ×é¼þÖ®¼äµÄµ÷¶È£¬ÔÚËùÓÐ×é¼þÖ®¼äÆðµ½¿ØÖƺËÐĵÄ×÷Óá£
ÕâÌ׿ò¼ÜÇåÎúµÄ»®·ÖÁ˲»Í¬×é¼þ£¬´ÓÕûÌå¼Ü¹¹ÉÏÀ´Ô¼Êø¿ª·¢ÈËÔ±½øÐÐ×é¼þ»¯¿ª·¢£¬±ÜÃâij¸ö¿ª·¢ÈËԱ͵ÀÁÖ±½ÓÒýÓÃÍ·Îļþ£¬²úÉú×é¼þ¼äµÄñîºÏ£¬ÆÆ»µÕûÌå¼Ü¹¹¡£¼ÙÉèÒÔºóij¸öÒµÎñ·¢Éú´óµÄ¸Ä±ä£¬ÐèÒª¶ÔÏà¹Ø´úÂë½øÐÐÖØ¹¹£¬¿ÉÒÔÔÚµ¥¸ö×é¼þ½øÐÐÖØ¹¹¡£×é¼þ»¯¼Ü¹¹½µµÍÁËÖØ¹¹µÄ·çÏÕ£¬±£Ö¤ÁË´úÂëµÄ½¡×³ÐÔ¡£
×é¼þ¼¯³É

×é¼þ»¯¼Ü¹¹Í¼
ÿ¸ö×é¼þ¶¼ÊÇÒ»¸öµ¥¶ÀµÄ¹¤³Ì£¬ÔÚ×é¼þ¿ª·¢Íê³ÉºóÉÏ´«µ½git²Ö¿â¡£Ö÷¹¤³Ìͨ¹ýCocoapods¼¯³É¸÷¸ö×é¼þ£¬¼¯³ÉºÍ¸üÐÂ×é¼þʱֻÐèÒªpod
update¼´¿É¡£ÕâÑù¾ÍÊǰÑÿ¸ö×é¼þµ±×öµÚÈý·½À´¹ÜÀí£¬¹ÜÀíÆðÀ´·Ç³£·½±ã¡£
Cocoapods¿ÉÒÔ¿ØÖÆÃ¿¸ö×é¼þµÄ°æ±¾£¬ÀýÈçÔÚÖ÷ÏîÄ¿Öлعöij¸ö×é¼þµ½Ìض¨°æ±¾£¬¾Í¿ÉÒÔͨ¹ýÐÞ¸ÄpodfileÎļþʵÏÖ¡£Ñ¡ÔñCocoapodsÖ÷ÒªÒòΪÆä±¾Éí¹¦ÄܺÜÇ¿´ó£¬¿ÉÒԺܷ½±ãµÄ¼¯³ÉÕû¸öÏîÄ¿£¬Ò²ÓÐÀûÓÚ´úÂëµÄ¸´Óá£Í¨¹ýÕâÖÖ¼¯³É·½Ê½£¬¿ÉÒԺܺõıÜÃâÔÚ´«Í³ÏîÄ¿ÖдúÂë³åÍ»µÄÎÊÌâ¡£
¼¯³É·½Ê½
¶ÔÓÚ×é¼þ»¯¼Ü¹¹µÄ¼¯³É·½Ê½£¬ÎÒÔÚ¿´ÍêbangµÄ²©¿ÍºóרÃÅÇë½ÌÁËÒ»ÏÂbang¡£¸ù¾ÝÔÚ΢²©ÉϺÍbangµÄÁÄÌìÒÔ¼°ÆäËû²©¿ÍÖеÄѧϰ£¬ÔÚÖ÷ÏîÄ¿Öм¯³É×é¼þÖ÷Òª·ÖΪÁ½ÖÖ·½Ê½¡ª¡ªÔ´ÂëºÍframework£¬µ«¶¼ÊÇͨ¹ýCocoaPodsÀ´¼¯³É¡£
ÎÞÂÛÊÇÓÃCocoaPods¹ÜÀíÔ´Â룬»¹ÊÇÖ±½Ó¹ÜÀíframework£¬Ð§¹û¶¼ÊÇÒ»ÑùµÄ£¬¶¼ÊÇ¿ÉÒÔÖ±½Ó½øÐÐpod
updateÖ®ÀàµÄ²Ù×÷µÄ¡£
ÕâÁ½ÖÖ×é¼þ¼¯³É·½°¸£¬Êµ¼ùÖÐÒ²ÊǸ÷ÓÐÀû±×¡£Ö±½ÓÔÚÖ÷¹¤³ÌÖм¯³É´úÂëÎļþ£¬¿ÉÒÔÔÚÖ÷¹¤³ÌÖнøÐе÷ÊÔ¡£¼¯³ÉframeworkµÄ·½Ê½£¬¿ÉÒÔ¼Ó¿ì±àÒëËÙ¶È£¬¶øÇÒ¶Ôÿ¸ö×é¼þµÄ´úÂëÓкܺõı£ÃÜÐÔ¡£Èç¹û¹«Ë¾¶Ô´úÂ밲ȫ±È½Ï¿´ÖØ£¬¿ÉÒÔ¿¼ÂÇframeworkµÄÐÎʽ£¬µ«framework²»ÀûÓÚÖ÷¹¤³ÌÖеĵ÷ÊÔ¡£
ÀýÈçÊÖ»úQQ»òÕßÖ§¸¶±¦ÕâÑùµÄ´óÐͳÌÐò£¬Ò»°ã¶¼»á²ÉÈ¡frameworkµÄÐÎʽ¡£¶øÇÒÒ»°ãÕâÑùµÄ´ó¹«Ë¾£¬¶¼»áÓÐ×Ô¼ºµÄ×é¼þ¿â£¬Õâ¸ö×é¼þ¿âÍùÍù¿ÉÒÔ´ú±íÒ»¸ö´óµÄ¹¦ÄÜ»òÒµÎñ×é¼þ£¬Ö±½ÓÌí¼ÓÏîÄ¿ÖоͿÉÒÔʹÓ᣹ØÓÚ×é¼þ»¯¿âÔÚºóÃæ½²ÌÔ±¦×é¼þ»¯¼Ü¹¹µÄʱºò»áÌáµ½¡£
²»ÍƼöµÄ¼¯³É·½Ê½
֮ǰÓÐЩÏîÄ¿ÊÇÖ±½ÓÓÃworkspaceµÄ·½Ê½¼¯³ÉµÄ£¬»òÕßÖ±½ÓÔÚÔÓÐÏîÄ¿Öн¨Á¢×ÓÏîÄ¿£¬Ö±½Ó×öÎļþÒýÓᣵ«ÕâÁ½µã¶¼ÊDz»½¨Òé×öµÄ£¬ÒòΪûÓÐÕæÕýÒâÒåÉÏʵÏÖÒµÎñ×é¼þµÄ°þÀ룬ֻÊÇÏñ֮ǰµÄÏîĿһÑù´ÓÎļþĿ¼½á¹¹ÉϽøÐÐÁË»®·Ö¡£
×é¼þ»¯¿ª·¢×ܽá
¶ÔÓÚÏîÄ¿¼Ü¹¹À´Ëµ£¬Ò»¶¨Òª½¨Á¢ÓÚÒµÎñÖ®ÉÏÀ´Éè¼Æ¼Ü¹¹¡£²»Í¬µÄÏîĿҵÎñ²»Í¬£¬×é¼þ»¯·½°¸µÄÉè¼ÆÒ²»á²»Í¬£¬Ó¦¸ÃÉè¼Æ×îÊʺϹ«Ë¾ÒµÎñµÄ¼Ü¹¹¡£
¼Ü¹¹¶Ô±È
ÔÚ³ýÄ¢¹½½ÖProtocol·½°¸Í⣬ÆäËûÁ½ÖÖ·½°¸¶¼»ò¶à»òÉٵĴæÔÚÓ²±àÂëÎÊÌ⣬Ӳ±àÂëÈç¹ûÁ¿±È½Ï´óµÄ»°Í¦Âé·³µÄ¡£
ÔÚcasatwyµÄCTMediator·½°¸ÖÐÐèÒªÓ²±àÂëTarget¡¢Action×Ö·û´®£¬Ö»²»¹ýÕâ¸öȱÏݱ»·â±ÕÔÚÖмä¼þÀïÃæÁË£¬½«ÕâЩ×Ö·û´®¶¼Í³Ò»¶¨ÒåΪ³£Á¿£¬Íâ½çʹÓò»ÐèÒª½Ó´¥µ½Ó²±àÂ롣̹½½ÖµÄMGJRouterµÄ·½°¸Ò²ÊÇÒ»ÑùµÄ£¬Ò²ÓÐÓ²±àÂëURLµÄÎÊÌ⣬̹½½Ö¿ÉÄÜÒ²×öÁËÀàËÆµÄ´¦Àí¡£
casatwyºÍÄ¢¹½½ÖÌá³öµÄÁ½Ì××é¼þ»¯·½°¸£¬´óÌå½á¹¹ÊÇÀàËÆµÄ£¬ÈýÌ×·½°¸¶¼·ÖΪµ÷Ó÷½¡¢Öмä¼þ¡¢·þÎñ·½£¬Ö»ÊÇÔÚ¾ßÌåʵÏÖ¹ý³ÌÖÐÓÐЩ²»Í¬¡£ÀýÈçProtocol·½°¸ÔÚÖмä¼þÖмÓÈëÁËProtocolÎļþ£¬casatwyµÄ·½°¸ÔÚÖмä¼þÖмÓÈëÁËCategory¡£
ÈýÖÖ·½°¸ÄÚ²¿¶¼ÓÐÈÝ´í´¦Àí£¬ËùÒÔÈýÖÖ·½°¸µÄÎȶ¨ÐÔ¶¼ÊDZȽϺõ쬶øÇÒ¶¼¿ÉÒÔÄóöÀ´µ¥¶ÀÔËÐУ¬ÔÚ·þÎñ·½²»´æÔÚµÄÇé¿öÏÂÒ²²»»áÓÐÎÊÌâ¡£
ÔÚÈýÌ×·½°¸ÖУ¬·þÎñ·½¶¼¶ÔÍâÌṩһ¸ö¹©Íâ½çµ÷ÓõĽӿÚÀ࣬Õâ¸öÀàÖÐʵÏÖ×é¼þ¶ÔÍâÌṩµÄ·þÎñ£¬Öмä¼þͨ¹ý½Ó¿ÚÀàÀ´ÊµÏÖ×é¼þ¼äµÄͨÐÅ¡£ÔÚ´ËÀàÖÐͳһ¶¨Òå¶ÔÍâÌṩµÄ·þÎñ£¬Íâ½çµ÷ÓÃʱ¾ÍÖªµÀ·þÎñ·½¿ÉÒÔ×öʲô¡£
µ÷ÓÃÁ÷³ÌÒ²²»´óÒ»Ñù£¬Ä¢¹½½ÖµÄÁ½Ì×·½°¸¶¼ÐèҪע²á²Ù×÷£¬ÎÞÂÛÊÇBlock»¹ÊÇProtocol¶¼ÐèҪע²áºó²Å¿ÉÒÔÌṩ·þÎñ¡£¶øcasatwyµÄ·½°¸Ôò²»ÐèÒª£¬Ö±½Óͨ¹ýruntimeµ÷Óá£casatwyµÄ·½°¸ÊµÏÖÁËÕæÕýµÄ¶Ô·þÎñ·½½âñ¶øÄ¢¹½½ÖµÄÁ½Ì×·½°¸ÔòûÓУ¬¶Ô·þÎñ·½ºÍµ÷Ó÷½¶¼Ôì³ÉÁËñîºÏ¡£
ÎÒÈÏΪÈýÌ×·½°¸ÖУ¬Protocol·½°¸Êǵ÷ÓúÍά»¤×îÂé·³µÄÒ»Ì×·½°¸¡£Î¬»¤Ê±ÐèҪͬʱά»¤Protocol¡¢½Ó¿ÚÀàÁ½²¿·Ö¡£¶øÇÒµ÷ÓÃʱÐèÒª½«·þÎñ·½µÄ½Ó¿ÚÀà·µ»Ø¸øµ÷Ó÷½£¬²¢Óɵ÷Ó÷½Ö´ÐÐһϵÁе÷ÓÃÂß¼£¬µ÷ÓÃÒ»¸ö·þÎñµÄÂß¼·Ç³£¸´ÔÓ£¬ÕâÔÚ¿ª·¢ÖÐÊǷdz£Ó°Ï쿪·¢Ð§Âʵġ£
×ܽá
ÏÂÃæÊÇ×é¼þ»¯¿ª·¢ÖеÄÒ»¸öС×ܽᣬҲÊÇ¿ª·¢¹ý³ÌÖеÄһЩעÒâµã¡£
ÔÚMGJRouter·½°¸ÖУ¬ÊÇͨ¹ýµ÷ÓÃOpenURL:·½·¨²¢´«ÈëURLÀ´·¢Æðµ÷Ó᣼øÓÚURLÐÒéÃûµÈ¹Ì¶¨¸ñʽ£¬¿ÉÒÔͨ¹ýÅжÏÐÒéÃûµÄ·½Ê½£¬Ê¹ÓÃÅäÖÃ±í¿ØÖÆH5ºÍnativeµÄÇл»£¬ÅäÖñí¿ÉÒÔ´Óºǫ́¸üУ¬Ö»ÐèÒª½«ÐÒéÃû¸ü¸Äһϼ´¿É¡£
¼ÙÉèÏÖÔÚÏßÉϵÄnative×é¼þ³öÏÖÑÏÖØbug£¬ÔÚºǫ́½«ÅäÖÃÎļþÖÐÔÓеı¾µØURL»»³ÉH5µÄURL£¬²¢¸üпͻ§¶ËÅäÖÃÎļþ¡£ÔÚµ÷ÓÃMGJRouterʱ´«ÈëÕâ¸öH5µÄURL¼´¿ÉÍê³ÉÇл»£¬MGJRouterÅжÏÈç¹û´«½øÀ´µÄÊÇÒ»¸öH5µÄURL¾ÍÖ±½ÓÌø×ªwebView¡£¶øÇÒURL¿ÉÒÔ´«µÝ²ÎÊý¸øMGJRouter£¬Ö»ÐèÒªMGJRouterÄÚ²¿×ö²ÎÊý½ØÈ¡¼´¿É¡£
casatwy·½°¸ºÍÄ¢¹½½ÖProtocol·½°¸£¬¶¼ÌṩÁË´«µÝÃ÷È·ÀàÐͲÎÊýµÄ·½·¨¡£ÔÚMGJRouter·½°¸ÖУ¬´«µÝ²ÎÊýÖ÷ÒªÊÇͨ¹ýÀàËÆGETÇëÇóÒ»ÑùÔÚURLºóÃæÆ´½Ó²ÎÊý£¬ºÍÔÚ×ÖµäÖд«µÝ²ÎÊýÁ½ÖÖ·½Ê½×é³É¡£ÕâÁ½ÖÖ·½Ê½»áÔì³É´«µÝ²ÎÊýÀàÐͲ»Ã÷È·£¬´«µÝ²ÎÊýÀàÐÍÊÜÏÞ(GETÇëÇó²»ÄÜ´«µÝ¶ÔÏó)µÈÎÊÌ⣬ºóÀ´Ê¹ÓÃProtocol·½°¸ÃÖ²¹Õâ¸öÎÊÌâ¡£
×é¼þ»¯¿ª·¢¿ÉÒԺܺõÄÌáÉý´úÂ븴ÓÃÐÔ£¬×é¼þ¿ÉÒÔÖ±½ÓÄõ½ÆäËûÏîÄ¿ÖÐʹÓã¬Õâ¸öÓŵãÔÚÏÂÃæÌÔ±¦¼Ü¹¹Öлá×ÅÖØ½²Ò»Ï¡£
¶ÔÓÚµ÷ÊÔ¹¤×÷£¬Ó¦¸Ã·ÅÔÚÿ¸ö×é¼þÖÐÍê³É¡£µ¥¶ÀµÄÒµÎñ×é¼þ¿ÉÒÔÖ±½ÓÌá½»¸ø²âÊÔÌá²â£¬ÕâÑù²âÊÔÆðÀ´Ò²±È½Ï·½±ã¡£×îºó×é¼þ¿ª·¢Íê³É²¢²âÊÔͨ¹ýºó£¬ÔÙ½«ËùÓÐ×é¼þ¸üе½Ö÷ÏîÄ¿£¬Ìá½»¸ø²âÊÔ½øÐм¯³É²âÊÔ¼´¿É¡£
ʹÓÃ×é¼þ»¯¼Ü¹¹¿ª·¢£¬×é¼þ¼äµÄͨÐŶ¼ÊÇÓгɱ¾µÄ¡£ËùÒÔ¾¡Á¿½«ÒµÎñ·â×°ÔÚ×é¼þÄÚ²¿£¬¶ÔÍâÖ»Ìṩ¼òµ¥µÄ½Ó¿Ú¡£¼´¡°¸ßÄÚ¾Û¡¢µÍñîºÏ¡±ÔÔò¡£
°ÑÎպû®·ÖÁ£¶ÈµÄϸ»¯³Ì¶È£¬Ì«Ï¸ÔòÏîÄ¿¹ýÓÚ·ÖÉ¢£¬Ì«´óÔòÏîÄ¿×é¼þÓ·Öס£µ«ÊÇÏîÄ¿¶¼ÊÇ´ÓСµ½´óµÄÒ»¸ö·¢Õ¹¹ý³Ì£¬ËùÒÔ²»¶Ï½øÐÐÖØ¹¹ÊÇÕÆÎÕÕâ¸ö×é¼þµÄϸ»¯³Ì¶È×îºÃµÄ·½Ê½¡£
ÎÒ¹«Ë¾¼Ü¹¹
ÏÂÃæ¾Í¼òµ¥ËµËµÎÒ¹«Ë¾ÏîÄ¿¼Ü¹¹£¬¹«Ë¾ÏîÄ¿ÊÇÒ»¸öµØÍ¼µ¼º½Ó¦Óã¬ÒµÎñ²ã֮ϵĻù´¡×é¼þÕ¼±È½Ï´ó¡£ÇÒ»ù´¡×é¼þÏà¶Ô±È½Ï¶ÀÁ¢£¬¶ÔÍâÌṩÁ˺ܶàµ÷Óýӿڡ£¸Õ¿ªÊ¼ÏëµÄÊDzÉÓÃMGJRouterµÄ·½°¸£¬µ«Èç¹ûÕâЩµ÷Óö¼Í¨¹ýRouter½øÐУ¬¿ª·¢ÆðÀ´±È½Ï¸´ÔÓ£¬·´¶ø»áÊÊµÃÆä·´¡£×îÖ÷ÒªÎÒÃÇÏîĿҲ²¢²»ÊǷdz£´ó£¬Ã»±ØÒª¶¼ÓÃRouterת·¢¡£
¶ÔÓÚÕâ¸öÎÊÌ⣬¹«Ë¾ÏîÄ¿µÄ¼Ü¹¹Éè¼ÆÊÇ£º²ã¼¶¼Ü¹¹+×é¼þ»¯¼Ü¹¹£¬×é¼þ»¯¼Ü¹¹´¦Óڲ㼶¼Ü¹¹µÄ×îÉϲ㣬Ҳ¾ÍÊÇÒµÎñ²ã¡£²ÉÈ¡ÕâÖֽṹ»ìºÏµÄ·½Ê½½øÐÐÕûÌå¼Ü¹¹£¬Õâ¸ö¶ÔÓÚ¹«¹²×é¼þµÄ¹ÜÀíºÍ²ã¼¶»®·Ö±È½ÏÓÐÀû£¬·ûºÏ¹«Ë¾ÒµÎñÐèÇó¡£

¹«Ë¾×é¼þ»¯¼Ü¹¹
¶ÔÓÚÒµÎñ²ã¼¶ÒÀÈ»²ÉÓÃ×é¼þ»¯¼Ü¹¹µÄÉè¼Æ£¬ÕâÑù¿ÉÒÔ³ä·ÖÀûÓÃ×é¼þ»¯¼Ü¹¹µÄÓÅÊÆ£¬¶ÔÏîÄ¿×é¼þ¼ä½øÐнâñî¡£ÔÚÉϲãºÍϲãµÄµ÷ÓÃÖУ¬Ï²ãµÄ¹¦ÄÜ×é¼þÓ¦¸Ã¶ÔÍ⿪·ÅÒ»¸ö½Ó¿ÚÀ࣬ÔÚ½Ó¿ÚÀàÖÐÉùÃ÷ËùÓеķþÎñ£¬ÊµÏÖÉϲãµ÷Óõ±Ç°×é¼þµÄÒ»¸öÖÐת£¬ÉϲãÖ±½Óµ÷ÓýӿÚÀà¡£ÕâÑù×öµÄºÃ´¦ÔÚÓÚ£¬Èç¹ûϲ㷢Éú¸Ä±ä²»»á¶ÔÉϲãÔì³ÉÓ°Ï죬¶øÇÒҲʡȥÁ˲¿·ÖRouterת·¢µÄ¹¤×÷¡£
ÔÚÉè¼Æ²ã¼¶¼Ü¹¹Ê±£¬ÐèҪעÒâÖ»ÄÜÉϲã¶ÔϲãÒÀÀµ£¬Ï²ã¶ÔÉϲ㲻ÄÜÓÐÒÀÀµ£¬Ï²ãÖв»Òª°üº¬ÉϲãÒµÎñÂß¼¡£¶ÔÓÚÏîÄ¿ÖдæÔڵĹ«¹²×ÊÔ´ºÍ´úÂ룬Ӧ¸Ã½«ÆäϳÁµ½Ï²ãÖС£
ΪʲôÕâô×ö£¿
Ê×ÏȾÍÏñÎÒ¸Õ²Å˵µÄ£¬ÎÒ¹«Ë¾ÏîÄ¿²¢²»ÊǺܴ󣬸ù±¾Ã»±ØÒª²ð·ÖµÄÄÇô³¹µ×¡£
ÒòΪ×é¼þ»¯¿ª·¢ÓÐÒ»¸öºÜÖØÒªµÄÔÒò¾ÍÊǽâñîºÏ£¬Èç¹ûÎÒ×öµ½Á˵ײ㲻¶ÔÉϲãÒÀÀµ£¬ÕâÑù¾ÍÒѾ½â³ýÁËÉÏϲãµÄÏ໥ñîºÏ¡£¶øÇÒÉϲã¶ÔÏÂ²ã½øÐе÷ÓõÄʱºò£¬Ò²²»ÊÇÖ±½Óµ÷ÓÃϲ㣬ͨ¹ýÒ»¸ö½Ó¿ÚÀà½øÐÐÖÐת£¬ÊµÏÖÁËϲãµÄ¸Ä±ä¶ÔÉϲãÎÞÓ°Ï죬ÕâÒ²ÊÇÉϲã¶Ôϲã½âñîµÄ±íÏÖ¡£
ËùÒÔ¶ÔÓÚµÚÈý·½¾Í²»ÓÃ˵ÁË£¬ÉϲãÖ±½Óµ÷ÓÃϲãµÄµÚÈý·½Ò²ÊÇûÎÊÌâµÄ£¬Õâ¶¼ÊǽâñîµÄ¡£
Ä£ÐÍÀàÔõô°ì£¬·ÅÔÚÄĺÏÊÊ£¿
casatwy¶ÔÄ£ÐÍÀàµÄ¹ÛµãÊÇÈ¥Model»¯£¬¼òµ¥À´Ëµ¾ÍÊÇÓÃ×Öµä´úÌæModel´æ´¢Êý¾Ý¡£Õâ¶ÔÓÚ×é¼þ»¯¼Ü¹¹À´Ëµ£¬Êǽâ¾ö×é¼þÖ®¼äÊý¾Ý´«µÝµÄÒ»¸öºÜºÃµÄ·½·¨¡£
ÒòΪģÐÍÀàÊǹغõÒµÎñµÄ£¬ÀíÂÛÉϱØÐë·ÅÔÚÒµÎñ²ãÒ²¾ÍÊÇÒµÎñ×é¼þÕâÒ»²ã¡£µ«ÊÇÒª°ÑÄ£ÐͶÔÏó´ÓÒ»¸ö×é¼þÖе±×ö²ÎÊý´«µÝµ½ÁíÒ»¸ö×é¼þÖУ¬Ä£ÐÍÀà·ÅÔÚµ÷Ó÷½ºÍ·þÎñ·½µÄÄĸö×é¼þ¶¼²»Ì«ºÏÊÊ£¬¶øÇÒÓпÉÄܲ»Ö»Á½¸ö×é¼þʹÓõ½Õâ¸öÄ£ÐͶÔÏó¡£ÕâÑùµÄ»°ÔÚÆäËû×é¼þʹÓÃÄ£ÐͶÔÏ󣬱ØÈ»»áÔì³ÉÒýÓúÍñîºÏ¡£
ÄÇôÈç¹û°ÑÄ£ÐÍÀà·ÅÔÚRouterÖУ¬ÕâÑù»áÔì³ÉRouterñîºÏÁËÒµÎñ£¬Ôì³ÉÒµÎñµÄÇÖÈëÐÔ¡£Èç¹ûÔÚÓõ½Õâ¸öÄ£ÐͶÔÏóµÄËùÓÐ×é¼þÖУ¬¶¼·Ö±ðά»¤Ò»·ÝÏàͬµÄÄ£ÐÍÀ࣬ÕâÑùÖ®ºóÒµÎñ·¢Éú¸Ä±äÄ£ÐÍÀà¾Í»áºÜÂé·³¡£
ÄÇÓ¦¸ÃÔõô°ìÄØ£¿
Èç¹û½«Ä£ÐÍÀ൥¶ÀÀ³öÀ´£¬¶¨ÒåÒ»¸öÄ£ÐÍ×é¼þÄØ£¿Õâ¸ö¿´ÆðÀ´±È½Ï¿ÉÐУ¬½«Õâ¸ö¶¨ÒåÄ£Ð͵Ä×é¼þϳÁµ½Ï²㣬ģÐÍ×é¼þ²»°üº¬ÒµÎñ£¬Ö»ÉùÃ÷Ä£ÐͶÔÏóµÄÀà¡£µ«ÊÇÒ»°ã×é¼þµÄÄ£ÐͶÔÏó¶¼Êǵ±Ç°×é¼þÄÚʹÓõ쬽«Ä£ÐͶÔÏ󴫵ݸøÆäËû×é¼þµÄÐèÇó·Ç³£ÉÙ£¬ÄÇËùÓеÄÄ£ÐÍÀà¶¼¶¨Ò嵽ģÐÍ×é¼þÂð£¿
¶ÔÓÚÕâ¸öÎÊÌ⣬ÎÒ½¨ÒéÔÚÏîÄ¿¿ª·¢Öн«Ä£ÐÍÀ໹¶¨ÒåÔÚµ±Ç°ÒµÎñ×é¼þÖУ¬ÔÚ×é¼þ¼ä´«µÝÄ£ÐͶÔÏóʱ½øÐÐÈ¥Model»¯£¬´«µÝ×ÖµäÀàÐ͵IJÎÊý¡£
ÉÏÃæÖ»ÊÇ˼¿¼£¬Ç¡ÇÉÎÒ¹«Ë¾³Ö¾Ã»¯·½°¸ÓõÄÊÇCoreData£¬ËùÓÐÄ£Ð͵͍Òå¶¼ÔÚCoreData×é¼þÖУ¬ÕâÑù¾Í±ÜÃâÁËÒµÎñ²ã×é¼þÖ®¼äÒòΪģÐÍÀàµÄñîºÏ¡£
µÎµÎ×é¼þ»¯¼Ü¹¹
֮ǰ¿´¹ýµÎµÎiOS¸ºÔðÈËÀîÏͻԵļ¼Êõ·ÖÏí£¬·ÖÏíµÄÊǵεÎiOS¿Í»§¶ËµÄ¼Ü¹¹·¢Õ¹Àú³Ì£¬ÏÂÃæ¼òµ¥×ܽáһϡ£
·¢Õ¹Àú³Ì
µÎµÎÔÚ×ʼµÄʱºò¼Ü¹¹½Ï»ìÂÒ¡£È»ºóÔÚ2.0ʱÆÚÖØ¹¹ÎªMVC¼Ü¹¹£¬Ê¹ÏîÄ¿»®·Ö¸ü¼ÓÇåÎú¡£ÔÚ3.0ʱÆÚÉÏÏßÁËеÄÒµÎñÏߣ¬Õâʱ²ÉÓõÄÓÎÏ·¿ª·¢ÖеÄ״̬»ú»úÖÆ£¬ÔÝʱ¿ÉÒÔÂú×ãÏÖÓÐÒµÎñ¡£
È»¶øÔÚºóÆÚ²»¶ÏÉÏÏß˳·ç³µ¡¢´ú¼Ý¡¢°ÍÊ¿µÈ¶àÌõÒµÎñÏßµÄÇé¿öÏ£¬ÏÖÓмܹ¹±äµÃ·Ç³£Ó·Ö×£¬´úÂëñîºÏÑÏÖØ¡£´Ó¶øÔÚ2015Ä꿪ʼÁË´úºÅΪ¡°The
One¡±µÄ·½°¸£¬ÕâÌ×·½°¸¾ÍÊǵεεÄ×é¼þ»¯·½°¸¡£
¼Ü¹¹Éè¼Æ
µÎµÎµÄ×é¼þ»¯·½°¸£¬ºÍÄ¢¹½½Ö·½°¸ÀàËÆ£¬Ò²ÊÇͨ¹ý˽ÓÐCocoaPodsÀ´¹ÜÀí¸÷¸ö×é¼þ¡£½«Õû¸öÏîÄ¿²ð·ÖΪҵÎñ²¿·ÖºÍ¼¼Êõ²¿·Ö£¬ÒµÎñ²¿·Ö°üÀ¨×¨³µ¡¢Æ´³µ¡¢°ÍÊ¿µÈÒµÎñÄ£¿é£¬Ã¿¸öÒµÎñÄ£¿é¾ÍÊÇÒ»¸öµ¥¶ÀµÄ×é¼þ£¬Ê¹ÓÃÒ»¸öpods¹ÜÀí¡£¼¼Êõ²¿·ÖÔò·ÖΪµÇ¼·ÖÏí¡¢ÍøÂç¡¢»º´æÕâÑùµÄһЩ»ù´¡×é¼þ£¬·Ö±ðʹÓò»Í¬µÄpods¹ÜÀí¡£
×é¼þ¼äͨÐÅͨ¹ýONERouterÖмä¼þ½øÐÐͨÐÅ£¬ONERouterÀàËÆÓÚMGJRouter£¬µ£¸ºÆðе÷ºÍµ÷Óø÷¸ö×é¼þµÄ×÷Óá£×é¼þ¼äͨÐÅͨ¹ýOpenURL·½·¨£¬À´½øÐжÔÓ¦µÄµ÷Óá£ONERouterÄÚ²¿±£´æÒ»·ÝClass-URLµÄÓ³Éä±í£¬Í¨¹ýURLÕÒµ½Class²¢·¢Æðµ÷Óã¬ClassµÄ×¢²á·ÅÔÚ+load·½·¨ÖнøÐС£
µÎµÎÔÚ×é¼þÄÚ²¿µÄÒµÎñÄ£¿éÖУ¬Ä£¿éÄÚ²¿Ê¹ÓÃMVVM+MVCS»ìºÏ¼Ü¹¹£¬Á½Öּܹ¹¶¼ÊÇMVCµÄÑÜÉú°æ±¾¡£ÆäÖÐMVCSÖеÄStore¸ºÔðÊý¾ÝÏà¹ØÂß¼£¬ÀýÈç¶©µ¥×´Ì¬¡¢µØÖ·¹ÜÀíµÈÊý¾Ý´¦Àí¡£Í¨¹ýMVVMÖеÄVM¸ø¿ØÖÆÆ÷ÊÝÉí£¬×îºóControllerµÄ´úÂëÁ¿¾ÍºÜÉÙÁË¡£
µÎµÎÊ×Ò³·ÖÎö
µÎµÎÎÄÕÂÖÐ˵µÀÊ×Ò³Ö»ÄÜÓÐÒ»¸öµØÍ¼ÊµÀý£¬ÕâÔÚºÜ¶àµØÍ¼µ¼º½Ïà¹ØÓ¦ÓÃÖж¼ÊÇÕâÑù×öµÄ¡£µÎµÎÊ×Ò³Ö÷¿ØÖÆÆ÷³ÖÓе¼º½À¸ºÍµØÍ¼£¬Ã¿¸öÒµÎñÏßÊ×Ò³¿ØÖÆÆ÷¶¼Ìí¼ÓÔÚÖ÷¿ØÖÆÆ÷ÉÏ£¬²¢ÇÒÒµÎñÏß¿ØÖÆÆ÷±³¾°¶¼ÉèÖÃΪ͸Ã÷£¬½«Í¸Ã÷²¿·ÖÏìӦʼþ´«µÝµ½ÏÂÃæµÄµØÍ¼ÖУ¬Ö»ÏìÓ¦ÊôÓÚ×Ô¼ºµÄÏìӦʼþ¡£
ÓÉÖ÷¿ØÖÆÆ÷À´Çл»¸÷¸öÒµÎñÏßÊ×Ò³£¬Çл»Ò³Ãæºó¸ù¾Ý²»Í¬µÄÒµÎñÏßÀ´¸üеØÍ¼Êý¾Ý¡£
ÌÔ±¦×é¼þ»¯¼Ü¹¹
±¾Õ½ÚÔ´×ÔÓÚ×ÚÐÄÔÚ°¢Àï¼¼ÊõɳÁúÉϵÄÒ»´Î·ÖÏí
¼Ü¹¹·¢Õ¹
ÌÔ±¦iOS¿Í»§¶Ë³õÆÚÊǵ¥¹¤³ÌµÄÆÕͨÏîÄ¿£¬µ«Ëæ×ÅÒµÎñµÄ·ÉËÙ·¢Õ¹£¬ÏÖÓмܹ¹²¢²»ÄܳÐÔØÔ½À´Ô½¶àµÄÒµÎñÐèÇ󣬵¼Ö´úÂë¼äñîºÏºÜÑÏÖØ¡£ºóÆÚ¿ª·¢ÍÅ¶Ó¶ÔÆä²»¶Ï½øÐÐÖØ¹¹£¬ÌÔ±¦iOSºÍAndroidÁ½¸öƽ̨£¬³ýÁËij¸öÆ½Ì¨ÌØÓеÄÒ»Ð©ÌØÐÔ»òijЩ·½°¸²»±ãʵʩ֮Í⣬´óÌå¼Ü¹¹¶¼ÊDz¶àµÄ¡£
·¢Õ¹Àú³Ì£º
¸Õ¿ªÊ¼ÊÇÆÕͨµÄµ¥¹¤³ÌÏîÄ¿£¬ÒÔ´«Í³µÄMVC¼Ü¹¹½øÐпª·¢¡£Ëæ×ÅÒµÎñ²»¶ÏµÄÔö¼Ó£¬µ¼ÖÂÏîÄ¿·Ç³£Ó·Öס¢ñîºÏÑÏÖØ¡£
2013ÄêÌÔ±¦¿ªÆô"all in ÎÞÏß"¼Æ»®£¬¼Æ»®½«ÌÔ±¦±äΪһ¸ö´óµÄƽ̨£¬½«°¢Àïϵ´ó¶àÊýÒµÎñ¶¼¼¯³Éµ½Õâ¸öƽ̨ÉÏ£¬Ôì³ÉÁËÒµÎñµÄ´ó±¬·¢¡£
ÌÔ±¦¿ªÊ¼ÊµÐвå¼þ»¯¼Ü¹¹£¬½«Ã¿¸öÒµÎñÄ£¿é»®·ÖΪһ¸ö×é¼þ£¬½«×é¼þÒÔframework¶þ·½¿âµÄÐÎʽ¼¯³Éµ½Ö÷¹¤³Ì¡£µ«ÕâÖÖ·½Ê½²¢Ã»ÓÐ×öµ½ÕæÕýµÄ²ð·Ö£¬»¹ÊÇÔÚÒ»¸ö¹¤³ÌÖÐʹÓÃgit½øÐÐmerge£¬ÕâÑù»¹»áÔì³ÉºÏ²¢³åÍ»¡¢²»ºÃ»ØÍ˵ÈÎÊÌâ¡£
ÓÀ´ÌÔ±¦Òƶ¯¶ËÓÐÊ·ÒÔÀ´×î´óµÄÖØ¹¹£¬½«ÆäÖØ¹¹Îª×é¼þ»¯¼Ü¹¹¡£½«Ã¿¸öÄ£¿éµ±×öÒ»¸ö×é¼þ£¬Ã¿¸ö×é¼þ¶¼ÊÇÒ»¸öµ¥¶ÀµÄÏîÄ¿£¬²¢ÇÒ½«×é¼þ´ò°ü³Éframework¡£Ö÷¹¤³Ìͨ¹ýpodfile¼¯³ÉËùÓÐ×é¼þframework£¬ÊµÏÖÒµÎñÖ®¼äÕæÕýµÄ¸ôÀ룬ͨ¹ýCocoaPodsʵÏÖ×é¼þ»¯¼Ü¹¹¡£
¼Ü¹¹ÓÅÊÆ
ÌÔ±¦ÊÇʹÓÃgitÀ´×öÔ´Âë¹ÜÀíµÄ£¬ÔÚ²å¼þ»¯¼Ü¹¹Ê±ÐèÒª¾¡¿ÉÄܱÜÃâmerge²Ù×÷£¬·ñÔòÔÚ´óÍŶÓÖÐÐ×÷³É±¾ÊǺܴóµÄ¡£¶øÊ¹ÓÃCocoaPods½øÐÐ×é¼þ»¯¿ª·¢£¬Ôò±ÜÃâÁËÕâ¸öÎÊÌâ¡£
ÔÚCocoaPodsÖпÉÒÔͨ¹ýpodfileºÜºÃµÄÅäÖø÷¸ö×é¼þ£¬°üÀ¨×é¼þµÄÔö¼ÓºÍɾ³ý£¬ÒÔ¼°¿ØÖÆÄ³¸ö×é¼þµÄ°æ±¾¡£Ê¹ÓÃCocoaPodsµÄÔÒò£¬ºÜ´ó³Ì¶ÈÊÇΪÁ˽â¾ö´óÐÍÏîÄ¿ÖУ¬´úÂë¹ÜÀí¹¤¾ßmerge´úÂëµ¼ÖµijåÍ»¡£²¢ÇÒ¿ÉÒÔͨ¹ýÅäÖÃpodfileÎļþ£¬ÇáËÉÅäÖÃÏîÄ¿¡£
ÿ¸ö×é¼þ¹¤³ÌÓÐÁ½¸ötarget£¬Ò»¸ö¸ºÔð±àÒ뵱ǰ×é¼þºÍÔËÐе÷ÊÔ£¬ÁíÒ»¸ö¸ºÔð´ò°üframework¡£ÏÈÔÚ×é¼þ¹¤³Ì×ö²âÊÔ£¬²âÊÔÍê³ÉºóÔÙ¼¯³Éµ½Ö÷¹¤³ÌÖм¯³É²âÊÔ¡£
ÿ¸ö×é¼þ¶¼ÊÇÒ»¸ö¶ÀÁ¢app£¬¿ÉÒÔ¶ÀÁ¢¿ª·¢¡¢²âÊÔ£¬Ê¹µÃÒµÎñ×é¼þ¸ü¼Ó¶ÀÁ¢£¬ËùÓÐ×é¼þ¿ÉÒÔ²¢Ðпª·¢¡£Ï²ãΪÉϲãÌṩÄÜÂú×ãÐèÇóµÄµ×²ã¿â£¬±£Ö¤ÉϲãÒµÎñ²ã¿ÉÒÔÕý³£¿ª·¢£¬²¢½«µ×²ã¿â·â×°³Éframework¼¯³Éµ½ÏîÄ¿ÖС£
ʹÓÃCocoaPods½øÐÐ×é¼þ¼¯³ÉµÄºÃ´¦ÔÚÓÚ£¬ÔÚ¼¯³É²âÊÔ×Ô¼º×é¼þʱ£¬¿ÉÒÔÖ±½Ó½«±¾µØÖ÷¹¤³ÌpodfileÎļþÖеĵ±Ç°×é¼þÖ¸Ïò±¾µØ£¬¾Í¿ÉÒÔÖ±½Ó½øÐм¯³É²âÊÔ£¬²»ÐèÒªÌá½»µ½·þÎñÆ÷²Ö¿â¡£
ÌÔ±¦ËIJã¼Ü¹¹

ÌÔ±¦ËIJã¼Ü¹¹(ͼƬÀ´×ÔÌÔ±¦¼¼Êõ·ÖÏí)
ÌÔ±¦¼Ü¹¹µÄºËÐÄ˼ÏëÊÇÒ»ÇнÔ×é¼þ£¬½«¹¤³ÌÖÐËùÓдúÂë¶¼³éÏóΪ×é¼þ¡£
ÌÔ±¦¼Ü¹¹Ö÷Òª·ÖΪËIJ㣬×îÉϲãÊÇ×é¼þBundle(ÒµÎñ×é¼þ)£¬ÒÀ´ÎÍùÏÂÊÇÈÝÆ÷(ºËÐIJã)£¬Öмä¼þBundle(¹¦ÄÜ·â×°)£¬»ù´¡¿âBundle(µ×²ã¿â)¡£ÈÝÆ÷²ãΪÕû¸ö¼Ü¹¹µÄºËÐÄ£¬¸ºÔð×é¼þ¼äµÄµ÷¶ÈºÍÏûÏ¢ÅÉ·¢¡£
×ÜÏßÉè¼Æ
×ÜÏßÉè¼Æ£ºURL·ÓÉ+·þÎñ+ÏûÏ¢¡£Í³Ò»ËùÓÐ×é¼þµÄͨÐűê×¼£¬¸÷¸öÒµÎñ¼äͨ¹ý×ÜÏß½øÐÐͨÐÅ¡£


×ÜÏßÉè¼Æ(ͼƬÀ´×ÔÌÔ±¦¼¼Êõ·ÖÏí)
URL¿ÉÒÔÇëÇóÒ²¿ÉÒÔ½ÓÊÜ·µ»ØÖµ£¬ºÍMGJRouter²î²»¶à¡£URL·ÓÉÇëÇó¿ÉÒÔ±»½âÎö¾ÍÖ±½ÓÄÃÀ´Ê¹Óã¬Èç¹û²»Äܱ»½âÎö¾ÍÌø×ªH5Ò³Ãæ¡£ÕâÑù¾ÍÍê³ÉÁËÒ»¸ö¶Ô²»´æÔÚ×é¼þµ÷ÓõļæÈÝ£¬Ê¹Óû§ÊÖÖбȽÏÀϵİ汾ÒÀÈ»¿ÉÒÔÏÔʾеÄ×é¼þ¡£
·þÎñÌṩһЩ¹«¹²·þÎñ£¬ÓÉ·þÎñ·½×é¼þ¸ºÔðʵÏÖ£¬Í¨¹ýProtocolʵÏÖ¡£ÏûÏ¢¸ºÔðͳһ·¢ËÍÏûÏ¢£¬ÀàËÆÓÚ֪ͨҲÐèҪע²á¡£
AppBundle App

(ͼƬÀ´×ÔÌÔ±¦¼¼Êõ·ÖÏí)
ÌÔ±¦Ìá³öBundle AppµÄ¸ÅÄ¿ÉÒÔͨ¹ýÒÑÓÐ×é¼þ£¬½øÐмòµ¥ÅäÖúó¾Í¿ÉÒÔ×é³ÉÒ»¸öеÄapp³öÀ´¡£½â¾öÁ˶à¸öÓ¦ÓÃÒµÎñ¸´ÓõÄÎÊÌ⣬·ÀÖ¹ÖØ¸´¿ª·¢Í¬Ò»ÒµÎñ»ò¹¦ÄÜ¡£
Bundle¼´App£¬ÈÝÆ÷¼´OS£¬ËùÓÐBundle App±»¼¯³Éµ½OSÉÏ£¬Ê¹Ã¿¸ö×é¼þµÄ¿ª·¢¾ÍÏñapp¿ª·¢Ò»Ñù¼òµ¥¡£ÕâÑù¾Í×öµ½ÁË´Ó¾ÞÐÍapp»Ø¹éÆÕͨappµÄÇáÓ¯£¬Ê¹´óÐÍÏîÄ¿µÄ¿ª·¢ÎÊÌâ³¹µ×µÃµ½Á˽â¾ö¡£