˵µ½Éè¼ÆÄ£Ê½£¬ÏàÐÅ´ó¼Ò¶¼²»Ä°Éú£¬µ«ÊÇÓÖÓжàÉÙÈËÖªµÀËü±³ºóµÄÕæÕýº¬Ò壿¾ø´ó¶àÊý³ÌÐòÔ±¶¼ÖªµÀÉè¼ÆÄ£Ê½Ê®·ÖÖØÒª£¬²»¹ý¹ØÓÚÕâ¸ö»°ÌâµÄÎÄÕÂÈ´²»ÊǺܶ࣬¿ª·¢ÕßÃÇÔÚ¿ª·¢µÄʱºòÓÐʱҲ²»Ì«ÔÚÒâÉè¼ÆÄ£Ê½·½ÃæµÄÄÚÈÝ¡£
Éè¼ÆÄ£Ê½Õë¶ÔÈí¼þÉè¼ÆÖеij£¼ûÎÊÌ⣬ÌṩÁËһЩ¿É¸´ÓõĽâ¾ö·½°¸£¬¿ª·¢Õß¿ÉÒÔͨ¹ýÕâЩģ°åд³öÒ×ÓÚÀí½âÇÒÄܹ»¸´ÓõĴúÂë¡£ÕýÈ·µÄʹÓÃÉè¼ÆÄ£Ê½¿ÉÒÔ½µµÍ´úÂëÖ®¼äµÄñîºÏ¶È£¬´Ó¶øºÜÇáËɵÄÐ޸ĻòÕßÌæ»»ÒÔǰµÄ´úÂë¡£
Èç¹ûÄã¶ÔÉè¼ÆÄ£Ê½»¹ºÜİÉú£¬ÄÇô¸æËßÄãÒ»¸öºÃÏûÏ¢£¡ÔÚiOSµÄ¿ª·¢¹ý³ÌÖУ¬ÆäʵÄã²»Öª²»¾õÒѾÓÃÁ˺ܶàÉè¼ÆÄ£Ê½¡£ÕâµÃÒæÓÚCocoaÌṩµÄ¿ò¼ÜºÍһЩÁ¼ºÃµÄ±à³Ìϰ¹ß¡£½ÓÏÂÀ´µÄÕâÆª½Ì³Ì½«»á´øÄãÒ»Æð·É£¬È¥ÁìÂÔÉè¼ÆÄ£Ê½µÄ÷ÈÁ¦¡£
ÎÒÃǽ«»áÍê³ÉÒ»¸öÍêÕûµÄÓ¦Óã¬Õ¹Ê¾ÒôÀÖר¼ºÍר¼µÄÏà¹ØÐÅÏ¢¡£Í¨¹ýÕâ¸öÓ¦Óã¬ÎÒÃÇ»á½Ó´¥Ò»Ð©CocoaÖг£¼ûµÄÉè¼ÆÄ£Ê½£º
- ´´½¨ÐÍ£¨Creational£©£ºµ¥Àýģʽ£¨Singleton£©
- ½á¹¹ÐÍ£¨Structural£©£ºMVC¡¢×°ÊÎÕßģʽ £¨Decorator£©¡¢ÊÊÅäÆ÷ģʽ£¨Adapter£©¡¢Íâ¹Ûģʽ £¨Facade£©
- ÐÐΪÐÍ£¨Behavioral£©£º¹Û²ìÕßģʽ£¨Observer£©¡¢±¸Íü¼ģʽ£¨Memento£©
ÕâÆªÎÄÕ²»ÊÇʲô³¤Æª´óÂÛµÄÀíÂÛ֪ʶ£¬Äã»áÔÚ¿ª·¢Ó¦ÓõĹý³ÌÖÐÂýÂýѧ»áÕâЩÉè¼ÆÄ£Ê½¡£
ÏÈÀ´Ô¤ÀÀÒ»ÏÂ×îÖյĽá¹û£º

¿´ÆðÀ´»¹ÊDz»´íµÄ£¬¿ªÊ¼Ñ§Ï°½ÓÏÂÀ´µÄÄÚÈݰɡ£Ó¸ҵÄÉÙÄêÃÇ£¬¿ìÀ´´´ÔìÆæ¼££¡
¿ªÊ¼
ÏÂÔØ³õʼÏîÄ¿²¢½âѹ£¬ÔÚXcodeÖдò¿ªBlueLibrarySwift.xcodeprojÏîÄ¿Îļþ¡£
ÏîÄ¿ÖÐÓÐÈý¸öµØ·½ÐèҪעÒâһϣº
- ViewControllerÓÐÁ½¸öIBOutlet £¬·Ö±ðÁ¬½Óµ½ÁËUITableView ºÍUIToolBarÉÏ¡£
- ÔÚStoryBoardÉÏÓÐÈý¸ö×é¼þÉèÖÃÁËÔ¼Êø¡£×îÉÏÃæµÄÊÇר¼µÄ·âÃæ£¬·âÃæÏÂÃæÊÇÁоÙÁËÏà¹Ø×¨¼µÄÁÐ±í£¬×îÏÂÃæÊÇÓÐÁ½¸ö°´Å¥µÄ¹¤¾ßÀ¸£¬Ò»¸öÓÃÀ´³·Ïú²Ù×÷£¬ÁíÒ»¸öÓÃÀ´É¾³ýÄãÑ¡ÖеÄר¼¡£
- Ò»¸ö¼òµ¥µÄHTTP¿Í»§¶ËÀࣨHTTPClient£©£¬ÀïÃæ»¹Ã»ÓÐʲôÄÚÈÝ£¬ÐèÒªÄãÈ¥ÍêÉÆ¡£

¡¾×¢Òâ¡¿Æäʵµ±Äã´´½¨Ò»¸öеÄXcodeµÄÏîÄ¿µÄʱºò£¬ÄãµÄ´úÂëÀï¾ÍÒѾÓкܶàÉè¼ÆÄ£Ê½µÄÓ°×ÓÁË£º MVC¡¢Î¯ÍС¢´úÀí¡¢µ¥Àý - ÕæÊÇÖÚÀïѰËûǧ°Ù¶È£¬µÃÀ´È«²»·Ñ¹¦·ò¡£
ÔÚѧϰµÚÒ»¸öÉè¼ÆÄ£Ê½Ö®Ç°£¬ÄãÐèÒª´´½¨Á½¸öÀ࣬ÓÃÀ´´æ´¢ºÍչʾר¼Êý¾Ý¡£
´´½¨Ò»¸öеÄÀ࣬¼Ì³ÐNSObjectÃûΪAlbum£¬¼ÇµÃÑ¡ÔñSwift×÷Ϊ±à³ÌÓïÑÔÈ»ºóµã»÷ÏÂÒ»²½¡£
´ò¿ªAlbum.swiftÈ»ºóÌí¼ÓÈç϶¨Ò壺

ÕâÀï´´½¨ÁËÎå¸öÊôÐÔ£¬·Ö±ð¶ÔӦר¼µÄ±êÌâ¡¢×÷Õß¡¢Á÷ÅÉ¡¢·âÃæµØÖ·ºÍ³ö°æÄê·Ý¡£
½ÓÏÂÀ´ÎÒÃÇÌí¼ÓÒ»¸ö³õʼ»¯·½·¨£º

ÕâÑùÎÒÃǾͿÉÒÔÓä¿ìµØ³õʼ»¯ÁË¡£
È»ºóÔÙ¼ÓÉÏÏÂÃæÕâ¸ö·½·¨£º

ÕâÊÇר¼¶ÔÏóµÄÃèÊö·½·¨£¬ÏêϸµÄ´òÓ¡ÁË Album µÄËùÓÐÊôÐÔÖµ£¬·½±ãÎÒÃDz鿴±äÁ¿¸÷¸öÊôÐÔµÄÖµ¡£
½ÓÏÂÀ´£¬ÔÙ´´½¨Ò»¸ö¼Ì³Ð×Ô UIView µÄÊÓͼÀà AlbumView.swift¡£
ÔÚн¨µÄÀàÖÐÌí¼ÓÁ½¸öÊôÐÔ£º

coverImage´ú±íÁË·âÃæµÄͼƬ£¬indicatorÔòÊÇÔÚ¼ÓÔØ¹ý³ÌÖÐÏÔʾµÄµÈ´ýָʾÆ÷¡£
ÕâÁ½¸öÊôÐÔ¶¼ÊÇ˽ÓÐÊôÐÔ£¬ÒòΪ³ýÁËAlbumViewÖ®Í⣬ÆäËûÀàûÓбØÒªÖªµÀËûÁ©µÄ´æÔÚ¡£ÔÚдһЩ¿ò¼Ü»òÕßÀà¿âµÄʱºò£¬ÕâÖֹ淶ʮ·ÖÖØÒª£¬¿ÉÒÔ±ÜÃâһЩÎó²Ù×÷¡£
½ÓÏÂÀ´¸øÕâ¸öÀàÌí¼Ó³õʼ»¯»¯·½·¨£º

ÒòΪUIView×ñ´ÓNSCodingÐÒ飬ËùÒÔÎÒÃÇÐèÒªNSCoderµÄ³õʼ»¯·½·¨¡£²»¹ýĿǰÎÒÃÇûÓÐencodeºÍdecodeµÄ±ØÒª£¬ËùÒԾͰÑËü·ÅÔÚÄÇÀï¾ÍÐУ¬µ÷Óø¸Àà·½·¨³õʼ»¯¼´¿É¡£
ÔÚÕæÕýµÄ³õʼ»¯·½·¨ÀÎÒÃÇÉèÖÃÁËһЩ³õʼ»¯µÄĬÈÏÖµ¡£±ÈÈçÉèÖñ³¾°ÑÕɫĬÈÏΪºÚÉ«£¬´´½¨ ImageView ²¢ÉèÖÃÁË margin Öµ£¬Ìí¼ÓÁËÒ»¸ö¼ÓÔØÖ¸Ê¾Æ÷¡£
×îÖÕÎÒÃÇÔÙ¼ÓÉÏÈçÏ·½·¨£º

Õâ»áÇл»×¨¼µÄ±³¾°ÑÕÉ«£¬Èç¹û¸ßÁÁ¾ÍÊǰ×É«£¬·ñÔò¾ÍÊǺÚÉ«¡£
ÔÚ¼ÌÐøÏÂÃæµÄÄÚÈÝ֮ǰ£¬ Command + B ÊÔÒ»ÏÂÈ·±£Ã»ÓÐʲôÎÊÌ⣬һÇÐÕý³££¿ÄǾͿªÊ¼µÚÒ»¸öÉè¼ÆÄ£Ê½µÄѧϰÀ²£¡
MVC——Éè¼ÆÄ£Ê½Ö®Íõ
Model-View-Controller (Ëõд MVC ) ÊÇ Cocoa ¿ò¼ÜµÄÒ»²¿·Ö£¬²¢ÇÒÎãÓ¹ÖÃÒÉÊÇ×î³£ÓõÄÉè¼ÆÄ£Ê½Ö®Ò»¡£Ëü¿ÉÒÔ°ïÄã°Ñ¶ÔÏó¸ù¾ÝÖ°Ôð½øÐл®·ÖºÍ¹éÀà¡£

×÷Ϊ»®·ÖÒÀ¾ÝµÄÈý¸ö»ù±¾Ö°ÔðÊÇ£º
- Ä£ÐͲ㣨Model£©£º´æ´¢Êý¾Ý²¢ÇÒ¶¨ÒåÈçºÎ²Ù×÷ÕâЩÊý¾Ý¡£ÔÚÎÒÃǵÄÀý×ÓÖУ¬¾ÍÊÇAlbumÀà¡£
- ÊÓͼ²ã£¨View£©£º¸ºÔðÄ£ÐͲãµÄ¿ÉÊÓ»¯Õ¹Ê¾£¬²¢ÇÒ¸ºÔðÓû§µÄ½»»¥£¬Ò»°ãÀ´Ëµ¶¼ÊǼ̳Ð×ÔUIViewÕâ¸ö»ùÀà¡£ÔÚÎÒÃǵÄÏîÄ¿ÖоÍÊÇAlbumViewÕâ¸öÀà¡£
- ¿ØÖÆÆ÷£¨Controller£©£º¿ØÖÆÆ÷ÊÇÕû¸öϵͳµÄÕÆ¿ØÕߣ¬ËüÁ¬½ÓÁËÄ£ÐͲãºÍÊý¾Ý²ã£¬²¢ÇÒ°ÑÊý¾ÝÔÚÊÓͼ²ãչʾ³öÀ´£¬¼àÌý¸÷ÖÖʼþ£¬¸ºÔðÊý¾ÝµÄ¸÷ÖÖ²Ù×÷¡£²»·Á²Â²ÂÔÚÎÒÃǵÄÏîÄ¿ÖÐÄĸöÊÇ¿ØÖÆÆ÷£¿°¡¹þ²Â¶ÔÁËViewControllerÕâ¸öÀà¾ÍÊÇ¡£
Èç¹ûÄãµÄÏîÄ¿×ñÑMVCµÄÉè¼ÆÄ£Ê½£¬ÄÇô¸÷ÖÖ¶ÔÏóÒª²»ÊÇModel£¬Òª²»ÊÇView£¬Òª²»¾ÍÊÇController¡£µ±È»ÔÚʵ¼ÊµÄ¿ª·¢ÖÐÒ²¿ÉÒÔÁé»î±ä»¯£¬±ÈÈç½áºÏ¾ßÌåÒµÎñʹÓÃMVVM½á¹¹¸øViewControllerÊÝÊÝÉí£¬Ò²ÊÇ¿ÉÒԵġ£
ÈýÕßÖ®¼äµÄ¹ØÏµÈçÏ£º

Ä£ÐͲã֪ͨ¿ØÖÆÆ÷²ãÈκÎÊý¾ÝµÄ±ä»¯£¬È»ºó¿ØÖÆÆ÷²ã»áË¢ÐÂÊÓͼ²ãÖеÄÊý¾Ý¡£ÊÓͼ²ã¿ÉÒÔ֪ͨ¿ØÖÆÆ÷²ãÓû§µÄ½»»¥Ê¼þ£¬È»ºó¿ØÖÆÆ÷»á´¦Àí¸÷ÖÖʼþÒÔ¼°Ë¢ÐÂÊý¾Ý¡£
Äã¿ÉÄÜ»á¸Ð¾õÆæ¹Ö£ºÎªÊ²Ã´Òª°ÑÕâÈý¸ö¶«Î÷·Ö¿ªÀ´£¬¶ø²»ÄÜÈàÔÚÒ»¸öÀàÀïÄØ£¿ÄÇÑùËÆºõ¸ü¼òµ¥Ò»µãÂï¡£
Ö®ËùÒÔÕâÑù×ö£¬ÊÇΪÁ˽«´úÂë¸üºÃµÄ·ÖÀëºÍÖØÓá£ÀíÏë״̬Ï£¬ÊÓͼ²ãÓ¦µ±ºÍÄ£ÐͲãÍêÈ«·ÖÀë¡£Èç¹ûÊÓͼ²ã²»ÒÀÀµÈκÎÄ£ÐͲãµÄ¾ßÌåʵÏÖ£¬ÄÇô¾Í¿ÉÒÔºÜÈÝÒ׵ı»ÆäËûÄ£Ð͸´Óã¬ÓÃÀ´Õ¹Ê¾²»Í¬µÄÊý¾Ý¡£
¾Ù¸öÀý×Ó£¬±ÈÈçÔÚδÀ´ÎÒÃÇÐèÒªÌí¼ÓµçÓ°»òÕßʲôÊé¼®£¬ÎÒÃÇÒÀ¾É¿ÉÒÔʹÓà AlbumView Õâ¸öÀà×÷Ϊչʾ¡£¸ü¾ÃÔ¶µãÀ´Ëµ£¬ÔÚÒÔºóÈç¹ûÄã´´½¨ÁËÒ»¸öеÄÏîÄ¿²¢ÇÒÐèÒªÓõ½ºÍר¼Ïà¹ØµÄÄÚÈÝ£¬Äã¿ÉÒÔÖ±½Ó¸´Óà Album ÀàÒòΪËü²¢²»ÒÀÀµÓÚÈκÎÊÓͼģ¿é¡£Õâ¾ÍÊÇ MVC µÄÇ¿´óÖ®´¦£¬Èý´óÔªËØ£¬¸÷˾ÆäÖ°£¬¼õÉÙÒÀÀµ¡£
ÈçºÎʹÓÃMVCģʽ
Ê×ÏÈ£¬ÄãÐèҪȷ¶¨ÄãµÄÏîÄ¿ÖеÄÿ¸öÀà¶¼ÊÇÈý´ó»ù±¾ÀàÐÍÖеÄÒ»ÖÖ£º¿ØÖÆÆ÷¡¢Ä£ÐÍ¡¢ÊÓͼ¡£²»ÒªÔÚÒ»¸öÀàÀïôۺ϶à¸ö½ÇÉ«¡£Ä¿Ç°ÎÒÃÇ´´½¨ÁËAlbumÀàºÍAlbumViewÀàÊÇ·ûºÏÒªÇóµÄ£¬×öµÃºÜºÃ¡£
È»ºó£¬ÎªÁËÈ·±£Äã×ñÑÕâÖÖģʽ£¬Äã×îºÃ´´½¨Èý¸öÏîÄ¿·Ö×éÀ´´æ·Å´úÂ룬·Ö±ðÊÇModel¡¢View¡¢Controller£¬±£³Öÿ¸öÀàÐ͵ÄÎļþ·Ö±ð¶ÀÁ¢¡£
½ÓÏÂÀ´°ÑAlbum.swiftÍϵ½Model·Ö×飬°ÑAlbumView.swiftÍϵ½View·Ö×飬Ȼºó°ÑViewController.swift Íϵ½Controller·Ö×éÖС£
ÏÖÔÚÄãµÄÏîĿӦ¸ÃÊÇÕâ¸öÑù×Ó£º

ÏÖÔÚÄãµÄÏîÄ¿ÒѾÓеãÑù×ÓÁË£¬²»ÔÙÊǸ÷¸öÎļþµßÅæÁ÷Àë¾ÓÎÞ¶¨ËùÁË¡£ÏÔÈ»Ä㻹»áÓÐÆäËû·Ö×éºÍÀ࣬µ«ÊÇÓ¦ÓõĺËÐľÍÔÚÕâÈý¸öÀàÀï¡£
ÏÖÔÚÄãµÄÄÚÈÝÒѾ×éÖ¯ºÃÁË£¬½ÓÏÂÀ´Òª×öµÄ¾ÍÊÇ»ñȡר¼µÄÊý¾Ý¡£Ä㽫»á´´½¨Ò»¸ö API ÀàÀ´¹ÜÀíÊý¾Ý - ÕâÀïÎÒÃÇ»áÓõ½ÏÂÒ»¸öÉè¼ÆÄ£Ê½£ºµ¥Àýģʽ¡£
µ¥Àýģʽ
µ¥Àýģʽȷ±£Ã¿¸öÖ¸¶¨µÄÀàÖ»´æÔÚÒ»¸öʵÀý¶ÔÏ󣬲¢ÇÒ¿ÉÒÔÈ«¾Ö·ÃÎÊÄǸöʵÀý¡£Ò»°ãÇé¿öÏ»áʹÓÃÑÓʱ¼ÓÔØµÄ²ßÂÔ£¬Ö»ÔÚµÚÒ»´ÎÐèҪʹÓõÄʱºò³õʼ»¯¡£
¡¾×¢Òâ¡¿ÔÚiOSÖе¥ÀýģʽºÜ³£¼û£¬NSUserDefaults.standardUserDefaults()¡¢UIApplication.sharedApplication()¡¢UIScreen.mainScreen()¡¢NSFileManager.defaultManager()ÕâЩ¶¼Êǵ¥Àýģʽ¡£
Äã¿ÉÄÜ»áÒÉ»óÁË£ºÈç¹û¶àÓÚÒ»¸öʵÀýÓÖ»áÔõôÑùÄØ£¿´úÂëºÍÄڴ滹û¾«¹óµ½Õâ¸öµØ²½°É£¿
ijЩ³¡¾°Ï£¬±£³ÖʵÀý¶ÔÏó½öÓÐÒ»·ÝÊǺÜÓÐÒâÒåµÄ¡£¾Ù¸öÀý×Ó£¬ÄãµÄÓ¦ÓÃʵÀý£¨UIApplication£©£¬Ó¦¸ÃÖ»ÓÐÒ»¸ö°É£¬ÏÔÈ»ÊÇÖ¸ÄãµÄµ±Ç°Ó¦Ó᣻¹ÓÐÒ»¸öÀý×Ó£ºÉ豸µÄÆÁÄ»£¨UIScreen£©ÊµÀýÒ²ÊÇÕâÑù£¬ËùÒÔ¶ÔÓÚÕâЩÀàµÄÇé¿ö£¬ÄãÖ»ÏëÒªÒ»¸öʵÀý¶ÔÏó¡£
µ¥ÀýģʽµÄÓ¦Óû¹ÓÐÁíÒ»ÖÖÇé¿ö£ºÄãÐèÒªÒ»¸öÈ«¾ÖÀàÀ´´¦ÀíÅäÖÃÎļþ¡£ÎÒÃǺÜÈÝÒ×ͨ¹ýµ¥ÀýģʽʵÏÖḬ̈߳²È«µÄʵÀý·ÃÎÊ£¬¶øÈç¹ûÓжà¸öÀà¿ÉÒÔͬʱ·ÃÎÊÅäÖÃÎļþ£¬Äǿɾ͸´ÔÓ¶àÁË¡£
ÈçºÎʹÓõ¥Àýģʽ
¿ÉÒÔ¿´ÏÂÕâ¸öͼ£º

ÕâÊÇÒ»¸öÈÕÖ¾À࣬ÓÐÒ»¸öÊôÐÔ£¨¼´Ò»¸öµ¥Àý¶ÔÏ󣩺ÍÁ½¸ö·½·¨£ºsharedInstance()ºÍinit()¡£
µÚÒ»´Îµ÷ÓÃsharedInstance()µÄʱºò£¬instanceÊôÐÔ»¹Ã»Óгõʼ»¯¡£ËùÒÔÎÒÃÇÒª´´½¨Ò»¸öÐÂʵÀý²¢ÇÒ·µ»Ø¡£
ÏÂÒ»´ÎÄãÔÙµ÷ÓÃsharedInstance()µÄʱºò£¬instanceÒѾ³õʼ»¯Íê³É£¬Ö±½Ó·µ»Ø¼´¿É¡£Õâ¸öÂ߼ȷ±£ÁËÕâ¸öÀàÖ»´æÔÚÒ»¸öʵÀý¶ÔÏó¡£
½ÓÏÂÀ´ÎÒÃǼÌÐøÍêÉÆµ¥Àýģʽ£¬Í¨¹ýÕâ¸öÀàÀ´¹ÜÀíר¼Êý¾Ý¡£
×¢Òâµ½ÔÚÎÒÃÇÇ°ÃæµÄ½ØÍ¼À·Ö×éÖÐÓиöAPI·Ö×飬ÕâÀï¿ÉÒÔ·ÅÄÇЩÌṩºǫ́·þÎñµÄÀà¡£ÔÚÕâ¸ö·Ö×éÖд´½¨Ò»¸öеÄÎļþLibraryAPI.swift£¬¼Ì³Ð×ÔNSObjectÀà¡£
ÔÚLibraryAPIÀïÌí¼ÓÏÂÃæÕâ¶Î´úÂ룺

ÔÚÕ⼸ÐдúÂëÀ×öÁËÈçϹ¤×÷£º
- ´´½¨Ò»¸ö¼ÆËãÀàÐ͵ÄÀà±äÁ¿£¬Õâ¸öÀà±äÁ¿£¬¾ÍÏñÊÇobjcÖеľ²Ì¬·½·¨Ò»Ñù£¬¿ÉÒÔÖ±½Óͨ¹ýÀà·ÃÎʶø²»ÓÃʵÀý¶ÔÏó¡£¾ßÌå¿É²Î¼ûÆ»¹û¹Ù·½ÎĵµµÄÊôÐÔ£¨Properties£©ÕâÒ»Õ¡£
- ÔÚÀà±äÁ¿ÀïǶÌ×Ò»¸öSingleton½á¹¹Ìå¡£
- Singleton·â×°ÁËÒ»¸ö¾²Ì¬µÄ³£Á¿£¬Í¨¹ý static ¶¨ÒåÒâζ×ÅÕâ¸öÊôÐÔÖ»´æÔÚÒ»¸ö£¬×¢ÒâSwiftÖÐstaticµÄ±äÁ¿ÊÇÑÓʱ¼ÓÔØµÄ£¬Òâζ×ÅInstanceÖ±µ½ÐèÒªµÄʱºò²Å»á±»´´½¨¡£Í¬Ê±ÔÙ×¢Òâһϣ¬ÒòΪËüÊÇÒ»¸ö³£Á¿£¬ËùÒÔÒ»µ©´´½¨Ö®ºó²»»áÔÙ´´½¨µÚ¶þ´Î¡£ÕâЩ¾ÍÊǵ¥ÀýģʽµÄºËÐÄËùÔÚ£ºÒ»µ©³õʼ»¯Íê³É£¬µ±Ç°Àà´æÔÚÒ»¸öʵÀý¶ÔÏ󣬳õʼ»¯·½·¨¾Í²»»áÔÙ±»µ÷Óá£
- ·µ»Ø¼ÆËãºóµÄÊôÐÔÖµ¡£
¡¾×¢Òâ¡¿¸ü¶àµÄµ¥ÀýģʽʵÀý¿ÉÒÔ¿´¿´GithubÉϵÄÕâ¸öʾÀý£¬ÁоÙÁ˵¥ÀýģʽµÄÈô¸ÉÖÖʵÏÖ·½Ê½¡£
ÄãÏÖÔÚ¿ÉÒÔ½«Õâ¸öµ¥Àý×÷Ϊר¼¹ÜÀíÀàµÄÈë¿Ú£¬½ÓÏÂÀ´ÎÒÃǼÌÐø´´½¨Ò»¸ö´¦Àíר¼Êý¾Ý³Ö¾Ã»¯µÄÀà¡£
н¨ PersistencyManager.swift ²¢Ìí¼ÓÈçÏ´úÂ룺

ÔÚÕâÀïÎÒÃǶ¨ÒåÁËÒ»¸ö˽ÓÐÊôÐÔ£¬ÓÃÀ´´æ´¢×¨¼Êý¾Ý¡£ÕâÊÇÒ»¸ö¿É±äÊý×飬ËùÒÔÄã¿ÉÒÔºÜÈÝÒ×µÄÔö¼Ó»òÕßɾ³ýÊý¾Ý¡£
È»ºó¼ÓÉÏһЩ³õʼ»¯µÄÊý¾Ý£º

ÔÚÕâ¸ö³õʼ»¯·½·¨ÀÎÒÃdzõʼ»¯ÁËÎåÕÅר¼¡£Èç¹ûÉÏÃæµÄר¼Ã»ÓÐÄãϲ»¶µÄ£¬Äã¿ÉÒÔËæÒâÌæ»»³ÉÄãµÄ²Ë¡£
È»ºóÌí¼ÓÈçÏ·½·¨£º

ÕâЩ·½·¨¿ÉÒÔÈÃÄã×ÔÓɵķÃÎÊ¡¢Ìí¼Ó¡¢É¾³ýר¼Êý¾Ý¡£
ÕâʱÄã¿ÉÒÔÔËÐÐÒ»ÏÂÄãµÄÏîÄ¿£¬È·±£±àÒëͨ¹ýÒÔ±ã½øÐÐÏÂÒ»²½²Ù×÷¡£
´ËʱÄã»òÐí»á¸Ðµ½ºÃÆæ£ºPersistencyManagerºÃÏñ²»Êǵ¥Àý°¡£¿Êǵģ¬Ëüȷʵ²»Êǵ¥Àý¡£²»¹ýû¹ØÏµ£¬ÔÚ½ÓÏÂÀ´µÄÍâ¹ÛģʽÕ½ڣ¬Äã»á¿´µ½LibraryAPIºÍPersistencyManagerÖ®¼äµÄÁªÏµ¡£
Íâ¹Ûģʽ
Íâ¹ÛģʽÔÚ¸´ÔÓµÄÒµÎñϵͳÉÏÌṩÁ˼òµ¥µÄ½Ó¿Ú¡£Èç¹ûÖ±½Ó°ÑÒµÎñµÄËùÓнӿÚÖ±½Ó±©Â¶¸øÊ¹ÓÃÕߣ¬Ê¹ÓÃÕßÐèÒªµ¥¶ÀÃæ¶ÔÕâÒ»´ó¶Ñ¸´ÔӵĽӿڣ¬Ñ§Ï°³É±¾ºÜ¸ß£¬¶øÇÒ´æÔÚÎóÓõÄÒþ»¼¡£Èç¹ûʹÓÃÍâ¹Ûģʽ£¬ÎÒÃÇÖ»Òª±©Â¶±ØÒªµÄ API ¾Í¿ÉÒÔÁË¡£
ÏÂͼÑÝʾÁËÍâ¹ÛģʽµÄ»ù±¾¸ÅÄ

APIµÄʹÓÃÕßÍêÈ«²»ÖªµÀÕâÄÚ²¿µÄÒµÎñÂß¼Óжàô¸´ÔÓ¡£µ±ÎÒÃÇÓдóÁ¿µÄÀಢÇÒËüÃÇʹÓÃÆðÀ´ºÜ¸´ÔÓ¶øÇÒÒ²ºÜÄÑÀí½âµÄʱºò£¬Íâ¹ÛģʽÊÇÒ»¸öÊ®·ÖÀíÏëµÄÑ¡Ôñ¡£
Íâ¹Ûģʽ°ÑʹÓúͱ³ºóµÄʵÏÖÂß¼³É¹¦½âñͬʱҲ½µµÍÁËÍⲿ´úÂë¶ÔÄÚ²¿¹¤×÷µÄÒÀÀµ³Ì¶È¡£Èç¹ûµ×²ãµÄÀà·¢ÉúÁ˸ı䣬Íâ¹ÛµÄ½Ó¿Ú²¢²»ÐèÒª×öÐ޸ġ£
¾Ù¸öÀý×Ó£¬Èç¹ûÓÐÒ»ÌìÄãÏë»»µôËùÓеĺǫ́·þÎñ£¬ÄãÖ»ÐèÒªÐÞ¸ÄAPIÄÚ²¿µÄ´úÂ룬Íⲿµ÷ÓÃAPIµÄ´úÂë²¢²»»áÓи͝¡£
ÈçºÎʹÓÃÍâ¹Ûģʽ
ÏÖÔÚÎÒÃÇÓÃPersistencyManagerÀ´¹ÜÀíר¼Êý¾Ý£¬ÓÃHTTPClientÀ´´¦ÀíÍøÂçÇëÇó£¬ÏîÄ¿ÖÐµÄÆäËûÀ಻Ӧ¸ÃÖªµÀÕâ¸öÂß¼¡£ËûÃÇÖ»ÐèÒªÖªµÀLibraryAPIÕâ¸ö“Íâ¹Û”¾Í¿ÉÒÔÁË¡£
ΪÁËʵÏÖÍâ¹Ûģʽ£¬Ó¦¸ÃÖ»ÈÃLibraryAPI³ÖÓÐPersistencyManagerºÍHTTPClientµÄʵÀý£¬È»ºóLibraryAPI±©Â¶Ò»¸ö¼òµ¥µÄ½Ó¿Ú¸øÆäËûÀàÀ´·ÃÎÊ£¬ÕâÑùÍⲿµÄ·ÃÎÊÀ಻ÐèÒªÖªµÀÄÚ²¿µÄÒµÎñ¾ßÌåÊÇÔõÑùµÄ£¬Ò²²»ÓÃÖªµÀÄãÊÇͨ¹ýPersistencyManager»¹ÊÇHTTPClient»ñÈ¡µ½Êý¾ÝµÄ¡£
´óÖµÄÉè¼ÆÊÇÕâÑùµÄ£º

LibraryAPI»á±©Â¶¸øÆäËû´úÂë·ÃÎÊ£¬µ«ÊÇPersistencyManagerºÍHTTPClientÔòÊDz»¶ÔÍ⿪·ÅµÄ¡£
´ò¿ªLibraryAPI.swiftÈ»ºóÌí¼ÓÈçÏ´úÂ룺

³ýÁËÁ½¸öʵÀý±äÁ¿Ö®Í⣬»¹ÓиöBoolÖµ£ºisOnline£¬Õâ¸öÊÇÓÃÀ´±êʶµ±Ç°ÊÇ·ñΪÁªÍø×´Ì¬µÄ£¬Èç¹ûÊÇÁªÍø×´Ì¬¾Í»áÈ¥ÍøÂç»ñÈ¡Êý¾Ý¡£
ÎÒÃÇÐèÒªÔÚinitÀïÃæ³õʼ»¯ÕâЩ±äÁ¿£º

HTTPClient²¢²»»áÖ±½ÓºÍÕæÊµµÄ·þÎñÆ÷½»»¥£¬Ö»ÊÇÓÃÀ´ÑÝʾÍâ¹ÛģʽµÄʹÓá£ËùÒÔinOnlineÕâ¸öÖµÎÒÃÇÒ»Ö±ÉèÖÃΪfalse¡£
½ÓÏÂÀ´ÔÚLibraryAPI.swiftÀïÌí¼ÓÈçÏ´úÂ룺

¿´Ò»ÏÂaddAlbum(_:index:)Õâ¸ö·½·¨£¬Ïȸüб¾µØ»º´æ£¬È»ºóÈç¹ûÊÇÁªÍø×´Ì¬»¹ÐèÒªÏò·þÎñÆ÷·¢ËÍÍøÂçÇëÇó¡£Õâ±ãÊÇÍâ¹ÛģʽµÄÇ¿´óÖ®´¦£ºÈç¹ûÍⲿÎļþÏëÒªÌí¼ÓÒ»¸öеÄר¼£¬Ëü²»»áÒ²²»ÓÃÈ¥Á˽âÄÚ²¿µÄʵÏÖÂß¼ÊÇÔõôÑùµÄ¡£
¡¾×¢Òâ¡¿µ±ÄãÉè¼ÆÍâ¹ÛµÄʱºò£¬ÇëÎñ±ØÀμǣºÊ¹ÓÃÕßËæÊ±¿ÉÄÜÖ±½Ó·ÃÎÊÄãµÄÒþ²ØÀà¡£ÓÀÔ¶²»Òª¼ÙÉèʹÓÃÕß»á×ñÑÄãµ±³õµÄÉè¼Æ×öÊ¡£
ÔËÐÐÒ»ÏÂÄãµÄÓ¦Óã¬Äã¿ÉÒÔ¿´µ½Á½¸ö¿ÕµÄÒ³ÃæºÍÒ»¸ö¹¤¾ßÀ¸£º×îÉÏÃæµÄÊÓͼÓÃÀ´Õ¹Ê¾×¨¼·âÃæ£¬ÏÂÃæµÄÊÓͼչʾÊý¾ÝÁÐ±í¡£

ÄãÐèÒªÔÚÆÁÄ»ÉÏչʾר¼Êý¾Ý£¬ÕâÊǾ͸ÃÓÃÏÂÒ»ÖÖÉè¼ÆÄ£Ê½ÁË£º×°ÊÎÕßģʽ
×°ÊÎÕßģʽ
×°ÊÎÕßģʽ¿ÉÒÔ¶¯Ì¬µÄ¸øÖ¸¶¨µÄÀàÌí¼ÓһЩÐÐΪºÍÖ°Ô𣬶ø²»ÓöÔÔ´úÂë½øÐÐÈκÎÐ޸ġ£µ±ÄãÐèҪʹÓÃ×ÓÀàµÄʱºò£¬²»·Á¿¼ÂÇÒ»ÏÂ×°ÊÎÕßģʽ£¬¿ÉÒÔÔÚÔʼÀàÉÏÃæ·â×°Ò»²ã¡£
ÔÚSwiftÀÓÐÁ½ÖÖ·½Ê½ÊµÏÖ×°ÊÎÕßģʽ£ºÀ©Õ¹£¨Extension£©ºÍίÍУ¨Delegation£©¡£
À©Õ¹
À©Õ¹ÊÇÒ»ÖÖÊ®·ÖÇ¿´óµÄ»úÖÆ£¬¿ÉÒÔÈÃÄãÔÚ²»Óü̳еÄÇé¿öÏ£¬¸øÒÑ´æÔÚµÄÀà¡¢½á¹¹Ìå»òÕßö¾ÙÀàÌí¼ÓһЩÐµĹ¦ÄÜ¡£×îÖØÒªµÄÒ»µãÊÇ£¬Äã¿ÉÒÔÔÚÄãûÓзÃÎÊȨÏÞµÄÇé¿öÏÂÀ©Õ¹ÒÑÓÐÀà¡£ÕâÒâζ×ÅÄãÉõÖÁ¿ÉÒÔÀ©Õ¹CocoaµÄÀ࣬±ÈÈçUIView»òÕßUIImage¡£
¾Ù¸öÀý×Ó£¬ÔÚ±àÒëʱмӵķ½·¨¿ÉÒÔÏñÀ©Õ¹ÀàµÄÕý³£·½·¨Ò»ÑùÖ´ÐС£ÕâºÍ×°ÊÎÆ÷ģʽÓе㲻ͬ£¬ÒòΪÀ©Õ¹²»»á³ÖÓÐÀ©Õ¹ÀàµÄ¶ÔÏó¡£
ÈçºÎʹÓÃÀ©Õ¹£¿
ÏëÏóÒ»ÏÂÕâ¸ö³¡¾°£¬ÎÒÃÇÐèÒªÔÚÏÂÃæÕâ¸öÁбíÀïչʾÊý¾Ý£º

ר¼±êÌâ´ÓÄÄÀïÀ´£¿Album±¾ÉíÊǸöModel¶ÔÏó£¬ËùÒÔËü²»Ó¦¸Ã¸ºÔðÈçºÎչʾÊý¾Ý¡£ÄãÐèҪһЩ¶îÍâµÄ´úÂëÌí¼ÓչʾÊý¾ÝµÄÂß¼£¬µ«ÊÇΪÁ˱£³ÖModelµÄ¸É¾»£¬ÎÒÃDz»Ó¦¸ÃÖ±½ÓÐ޸ĴúÂ룬ÒòΪÕâÑù²»·ûºÏµ¥Ò»Ö°ÔðÔÔò¡£ Model ²ã×îºÃ¾ÍÊǸºÔð´¿´âµÄÊý¾Ý½á¹¹£¬Èç¹ûÓÐÊý¾ÝµÄ²Ù×÷¿ÉÒԷŵ½À©Õ¹ÖÐÍê³É¡£
½ÓÏÂÀ´ÎÒÃǻᴴ½¨Ò»¸öÀ©Õ¹£¬À©Õ¹ÏÖÓеÄAlbumÀ࣬ÔÚÀ©Õ¹ÀﶨÒåÁËÐµķ½·¨£¬·µ»Ø¸üÊʺÏUITableViewչʾÓõÄÊý¾Ý½á¹¹¡£
Êý¾ÝµÄ½á¹¹´ó¸ÅÊÇÕâÑù£º

н¨Ò»¸öSwiftÎļþ£ºAlbumExtensions £¬ÔÚÀïÃæÌí¼ÓÈçÏÂÀ©Õ¹£º

ÔÚ·½·¨µÄÇ°ÃæÓиöae_ ǰ׺£¬ÊÇAlbumExtensionµÄËõд£¬ÕâÑùÓÐÀûÓÚºÍÀàµÄÔÓз½·¨½øÐÐÇø·Ö£¬±ÜÃâʹÓõÄʱºò²úÉú³åÍ»¡£ÏÖÔںܶ໹ÔÚά»¤ÖеĵÚÈý·½¿â¶¼ÒѾ¸Ä³ÉÁËÕâ¸ö·ç¸ñ¡£
¡¾×¢Òâ¡¿ÀàÊÇ¿ÉÒÔÖØÐ´¸¸Àà·½·¨µÄ£¬µ«ÊÇÔÚÀ©Õ¹Àï²»¿ÉÒÔ¡£À©Õ¹ÀïµÄ·½·¨ºÍÊôÐÔ²»ÄܺÍÔʼÀàÀïµÄ·½·¨ºÍÊôÐÔ³åÍ»¡£
˼¿¼Ò»ÏÂÕâ¸öÉè¼ÆÄ£Ê½µÄÇ¿´óÖ®´¦£º
- ÎÒÃÇ¿ÉÒÔÖ±½ÓÔÚÀ©Õ¹ÀïʹÓà Album ÀïµÄÊôÐÔ¡£
- ÎÒÃǸø Album ÀàÌí¼ÓÁËÄÚÈݵ«ÊDz¢Ã»Óм̳ÐËü£¬ÊÂʵÉÏ£¬Ê¹Óü̳ÐÀ´À©Õ¹ÒµÎñÒ²¿ÉÒÔʵÏÖÒ»ÑùµÄ¹¦ÄÜ¡£
- Õâ¸ö¼òµ¥µÄÀ©Õ¹ÈÃÎÒÃÇ¿ÉÒÔ¸üºÃµØ°Ñ Album µÄÊý¾ÝչʾÔÚ UITableView À¶øÇÒ²»ÓÃÐÞ¸ÄÔ´Âë¡£
ίÍÐ
×°ÊÎÕßģʽµÄÁíÒ»ÖÖʵÏÖ·½°¸ÊÇίÍС£ÔÚÕâÖÖ»úÖÆÏ£¬Ò»¸ö¶ÔÏó¿ÉÒÔºÍÁíÒ»¸ö¶ÔÏóÏà¹ØÁª¡£±ÈÈçÄãÔÚÓÃUITableView£¬Äã±ØÐëʵÏÖtableView(_:numberOfRowsInSection:)Õâ¸öίÍз½·¨¡£
Äã²»Ó¦¸ÃÖ¸ÍûUITableViewÖªµÀÄãÓжàÉÙÊý¾Ý£¬ÕâÊǸöÓ¦Óòã¸Ã½â¾öµÄÎÊÌâ¡£ËùÒÔ£¬Êý¾ÝÏà¹ØµÄ¼ÆËãÓ¦¸Ãͨ¹ýUITableViewµÄίÍÐÀ´½â¾ö¡£ÕâÑù¿ÉÒÔÈÃUITableViewºÍÊý¾Ý²ã·Ö±ð¶ÀÁ¢¡£ÊÓͼ²ã¾Í¸ºÔðÏÔʾÊý¾Ý£¬ÄãµÝ¹ýÀ´Ê²Ã´ÎÒ¾ÍÏÔʾʲô¡£
ÏÂÃæÕâÕÅͼºÜºÃµÄ½âÊÍÁËUITableViewµÄ¹¤×÷¹ý³Ì£º

UITableViewµÄ¹¤×÷½ö½öÊÇչʾÊý¾Ý£¬µ«ÊÇ×îÖÕËüÐèÒªÖªµÀ×Ô¼ºÒªÕ¹Ê¾ÄÇЩÊý¾Ý£¬Õâʱ¾Í¿ÉÒÔÏòËüµÄίÍÐѯÎÊ¡£ÔÚobjcµÄίÍÐģʽÀһ¸öÀà¿ÉÒÔͨ¹ýÐÒéÀ´ÉùÃ÷¿ÉÑ¡»òÕß±ØÐëµÄ·½·¨¡£
¿´ÆðÀ´Ëƺõ¼Ì³ÐÈ»ºóÖØÐ´±ØÐëµÄ·½·¨À´µÄ¸ü¼òµ¥Ò»µã¡£µ«ÊÇ¿¼ÂÇÒ»ÏÂÕâ¸öÎÊÌ⣺¼Ì³ÐµÄ½á¹û±Ø¶¨ÊÇÒ»¸ö¶ÀÁ¢µÄÀ࣬Èç¹ûÄãÏëÈÃij¸ö¶ÔÏó³ÉΪ¶à¸ö¶ÔÏóµÄίÍУ¬ÄÇô×ÓÀàÕâÕоÍÐв»Í¨ÁË¡£
¡¾×¢Ò⡿ίÍÐģʽʮ·ÖÖØÒª£¬Æ»¹ûÔÚ UIKit ÖдóÁ¿Ê¹ÓÃÁ˸Ãģʽ£¬»ù±¾ÉÏËæ´¦¿É¼û¡£
ÈçºÎʹÓÃίÍÐģʽ
´ò¿ªViewController.swiftÎļþ£¬Ìí¼ÓÈçÏÂ˽ÓбäÁ¿£º

ÔÚviewDidLoadÀïÃæ¼ÓÈëÈçÏÂÄÚÈÝ£º

¶ÔÉÏÃæÈý¸ö²¿·Ö½øÐвð½â£º
- ¹Ø±Õµ¼º½À¸µÄ͸Ã÷Ч¹û
- ͨ¹ýAPI»ñÈ¡ËùÓеÄר¼Êý¾Ý£¬¼Çס£¬ÎÒÃÇʹÓÃÍâ¹Ûģʽ֮ºó£¬Ó¦¸Ã´ÓLibraryAPI»ñÈ¡Êý¾Ý£¬¶ø²»ÊÇPersistencyManager ¡£
- Äã¿ÉÒÔÔÚÕâÀïÉèÖÃÄãµÄUITablweView £¬ÔÚÕâÀïÉùÃ÷ÁËUITableViewµÄdelegateÊǵ±Ç°µÄViewController ¡£ÊÂʵÉÏÄãÓÃÁËXIB»òÕßStoryBoard£¬¿ÉÒÔÖ±½ÓÔÚ¿ÉÊÓ»¯µÄÒ³ÃæÀïÍÏ×§Íê³É¡£
½ÓÏÂÀ´Ìí¼ÓÒ»¸öÐµķ½·¨ÓÃÀ´¸ü·½±ãµÄ»ñÈ¡Êý¾Ý£º

showDataForAlbum()Õâ¸ö·½·¨»ñÈ¡×îеÄר¼Êý¾Ý£¬µ±ÄãÏëҪչʾÐÂÊý¾ÝµÄʱºò£¬ÄãÐèÒªµ÷ÓÃreloadData()Õâ¸ö·½·¨£¬ÕâÑùUITableView¾Í»áÏòίÍÐÇëÇóÊý¾Ý£¬±ÈÈçÓжàÉÙ¸ösectionÓжàÉÙ¸örowÖ®ÀàµÄ¡£
ÔÚviewDidLoadÀïÃæµ÷ÓÃÉÏÃæµÄ·½·¨£º

ÕâÑùÓ¦ÓÃÒ»Æô¶¯¾Í»áÈ¥¼ÓÔØµ±Ç°µÄר¼Êý¾Ý¡£ÒòΪcurrentAlbumIndexµÄĬÈÏÖµÊÇ 0 £¬ËùÒÔÒ»¿ªÊ¼»áĬÈÏÏÔʾµÚÒ»ÕÂר¼µÄÐÅÏ¢¡£
½ÓÏÂÀ´ÎÒÃǸÃÈ¥ÍêÉÆDataSourceµÄÐÒé·½·¨ÁË¡£Äã¿ÉÒÔÖ±½Ó°ÑίÍз½·¨Ð´ÔÚÀàÀïÃæ£¬µ±È»Èç¹ûÄãÏëÈÃÄãµÄ´úÂë¿´ÆðÀ´¸üÕû½àÒ»µã£¬Ôò¿ÉÒÔ·ÅÔÚÀ©Õ¹Àï¡£
ÔÚÎļþµ×²¿Ìí¼ÓÈçÏ·½·¨£¬×¢ÒâÒ»¶¨Òª·ÅÔÚÀඨÒåµÄ´óÀ¨ºÅÍâÃæ£¬ÒòΪÕâÁ½¸ö¼Ò»ï²»ÊÇÀඨÒåµÄÒ»²¿·Ö£¬ËüÃÇÊÇÀ©Õ¹£º

ÉÏÃæ¾ÍÊÇʵÏÖίÍеķ½·¨ - Äã¿ÉÒÔ°ÑÐÒéÏëÏó³ÉÊÇÓëίÍÐÖ®¼äµÄÔ¼¶¨£¬Ö»ÒªÄãʵÏÖÁËÔ¼¶¨µÄ·½·¨£¬¾ÍËãÊÇʵÏÖÁËίÍС£ÔÚÎÒÃǵĴúÂëÖУ¬ViewControllerÐèÒª×ñÊØUITableViewDataSourceºÍUITableViewDelegateµÄÐÒé¡£ÕâÑùUITableView²ÅÄÜÈ·±£±ØÒªµÄίÍз½·¨¶¼ÒѾʵÏÖÁË¡£
ÔÚUITableViewDataSource¶ÔÓ¦µÄÄǸöÀ©Õ¹Àï¼ÓÉÏÈçÏ·½·¨£º

tableView(_:numberOfRowsInSection:) ·µ»ØÐèҪչʾµÄÐÐÊý£¬ºÍ´æ´¢µÄÊý¾ÝÖÐµÄ title µÄÊýÄ¿Ïàͬ¡£
tableView(_:cellForRowAtIndexPath:) ´´½¨²¢ÇÒ·µ»ØÁËÒ»¸öµ¥Ôª¸ñ£¬ÉÏÃæÓбêÌâºÍ¶ÔÓ¦µÄÖµ¡£
¡¾×¢Òâ¡¿Äã¿ÉÒÔ°ÑÕâЩ·½·¨Ö±½Ó¼ÓÔÚÀàÉùÃ÷ÀïÃæ£¬Ò²¿ÉÒÔ·ÅÔÚÀ©Õ¹À±àÒëÆ÷²»»áÈ¥¹ÜÊý¾ÝÔ´µ½µ×ÔÚÄÄÀֻҪÄÜÕÒµ½¶ÔÓ¦µÄ·½·¨¾Í¿ÉÒÔÁË¡£¶øÎÒÃÇÖ®ËùÒÔÕâÑù×ö£¬ÊÇΪÁË·½±ãÆäËûÈËÔĶÁ¡£
´ËʱÔÙ¹¹½¨ÏîÄ¿£¬Äã¿ÉÒÔ¿´µ½ÈçÏÂÄÚÈÝ£º

Êǵģ¬ÏÔʾ³É¹¦À²£¡Ä¿Ç°µÄÏîĿԴÂëÔÚÕâÀBlueLibrarySwift-Part1£¬Èç¹ûÓöµ½Ê²Ã´ÎÊÌâÄã¿ÉÒÔÏÂÔØÏÂÀ´¶Ô±Èһϡ£
|