Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
iOS¼Ü¹¹Ñ§Ï°Æª¡ª¡ª×é¼þ»¯¼Ü¹¹Âþ̸
 
À´Ô´:¼òÊé ×÷Õߣº ÁõС׳ ·¢²¼ÓÚ:2017-8-9
  4744  次浏览      27
 

ǰ¶Îʱ¼ä¹«Ë¾ÏîÄ¿´òËãÖØ¹¹£¬×¼È·À´ËµÓ¦¸ÃÊǰ´Ö®Ç°µÄ²úÆ·Âß¼­ÖØÐ´Ò»¸öÏîÄ¿??¡£ÔÚÖØ¹¹ÏîÄ¿Ö®Ç°Éæ¼°µ½¼Ü¹¹Ñ¡Ð͵ÄÎÊÌ⣬ÎÒºÍ×éÀïС»ï°éÒ»ÆðÑо¿ÁËÒ»ÏÂ×é¼þ»¯¼Ü¹¹£¬´òË㽫ÏîÄ¿ÖØ¹¹Îª×é¼þ»¯¼Ü¹¹¡£µ±È»²»ÊÇÖ±½ÓÄÃÀ´Õհᣬ»¹ÊÇÒª¸ù¾Ý¹«Ë¾¾ßÌåµÄÒµÎñÐèÇóÉè¼Æ¼Ü¹¹¡£

ÔÚѧϰ×é¼þ»¯¼Ü¹¹µÄ¹ý³ÌÖУ¬´ÓºÜ¶à¸ßÖÊÁ¿µÄ²©¿ÍÖÐѧµ½²»ÉÙ¶«Î÷£¬ÀýÈçÄ¢¹½½ÖÀîÖÒ¡¢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µÄÇáÓ¯£¬Ê¹´óÐÍÏîÄ¿µÄ¿ª·¢ÎÊÌâ³¹µ×µÃµ½Á˽â¾ö¡£

   
4744 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù