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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Swift×î¿áìŵįߴó¹¦ÄÜ
 
×÷Õß Andrew Wagner »ðÁú¹ûÈí¼þ  ·¢²¼ÓÚ 2014-07-08
  3273  次浏览      27
 

±¾ÎÄ×÷ÕßAndrew WagnerÊÇÒ»Ãû×ÊÉîµÄiOSºÍWeb¿ª·¢Õߣ¬ÔÚSwiftÃæÊÀÖ®ºó£¬Ëû»¨·ÑÁËÐí¶àµÄʱ¼äÀ´Ñо¿Swift£¬ÔÚÎÄÕÂÖУ¬Ëû²»½ö·ÖÏíÁËSwiftÓïÑÔÖÐÈÃiOSºÍOS X¿ª·¢Õ߯ÄΪÐ˷ܵIJ¿·Ö£¬»¹½«ÆäÓëRuby¡¢C++¡¢Objective-CÓïÑÔ½øÐбȽϣ¬×ܽá³öÁËSwift×îΪ¿áìŵįߴó¹¦ÄÜ¡£

1. Ö§³ÖÀ©Õ¹½á¹¹ºÍ×ÖÃæÁ¿

SwiftÖÐÎÒ×îϲ»¶µÄÒ»µã¾ÍÊÇ¿ÉÒÔÀ©Õ¹½á¹¹£¬Õâ¶ÔÓÚÏòÏÖÓнṹÖÐÌí¼Óº¯Êý¿Éν´óÓÐñÔÒæ¡£¶ÔÎÒÀ´Ëµ£¬×îºÃµÄÀý×Ó¾ÍÊÇËüÄܹ»ÊµÏÖÏòÖ§³Ö·µ»¹¾ØÐÎÀàRectangleÖÐÐĵãµÄCGRectÌí¼ÓÒ»¸öÖÐÐÄ·¨£º

ÎÒ²»µÃ²»Ê¹ÓôóÁ¿µÄRectangleÖÐÐĵ㣬¶øÈç¹ûÎÒ¿ÉÒÔÀûÓÃnameÀ´È¡´ú·±ÔÓµÄÊýѧ¼ÆË㣬¾ÍÄܹ»ÈôúÂëµÄÒâͼÏԵøü¼ÓÇåÎúÃ÷ÁË¡£

´ËÍ⣬Swift»¹Ö§³ÖÀ©Õ¹×ÖÃæÁ¿¡£ÔÚRubyÖУ¬ÓÐÒ»¸öÃûΪrepeatµÄ·Ç³£ÓÐÓõÄÕûÊý·½·¨¡£»ù±¾ÉÏÄã¿ÉÒÔʹÓÿéÀ´¶ÔÒ»¸öÕûÊýµ÷ÓÃrepeat£¬¼´Ê¹Öظ´¶¨ÒåÕûÊýÒ²¿É±»Ö´ÐС£È»¶øÔÚSwiftÖУ¬Ò»Çоͼòµ¥µÃ¶à£º

½Ó×Å£¬Äã¾Í¿ÉÒÔÏñÕâÑùʹÓÃËü£º

×¢£ºÈç¹ûΨһ²ÎÊýΪ±Õ°ü£¬Ôò¿ÉÊ¡ÂÔÀ¨ºÅ¡£

2.¸ü¼ÓÁé»îµÄö¾Ù

Objective-CµÄö¾ÙÓï·¨×ÅʵǷ¼Ñ£¬¶øSwiftÖеÄö¾ÙÔò¸ü¼ÓÁé»î£¬Äã¿ÉÒÔ¶¨ÒåSwiftµÄö¾Ù´æ´¢ÈκÎÀàÐ͵ÄÏà¹ØÖµ£¬ÀýÈç£¬ÍøÂçÇëÇó£º

GETÇëÇó²¢²»¾ß±¸ÇëÇóÖ÷Ì壬µ«POSTÈ´¾ß±¸¡£ÔÚ·½·¨Ã¶¾ÙÖУ¬Èç¹ûûÓÐÒ»¸öDZÔÚÏÐÖõijÉÔ±±äÁ¿£¬Ôò¿ÉÒÔÖ±½Ó¶¨ÒåPOSTÄÚÈÝÖ÷Ìå¡£

¹ØÓÚÕâµã£¬×îºÃµÄÀýÖ¤¾ÍÊÇSwiftµÄOptional¡£Swift±àÒëÆ÷Äܹ»¸øÓèÎÒÃÇÐí¶àÓï·¨ÉϵÄÌðÍ·£¬µ«Â䵽ʵ´¦£¬µ±ÄãÏñÕâÑù¶¨ÒåÒ»¸ö¿ÉÑ¡×Ö·û´®Ê±£ºvar myString : String?£¬±àÒëÆ÷»á½«Æäת»»Îªvar myString : Optional<String>¡£¶¨ÒåOptional£º

3.¸üΪǿ´óµÄ·ºÐÍ

¼¯ºÏÔÚObjective-CÖÐʹÓõͼÊÇ×îͨÓõķºÐÍÀ࣬Õâ¾ÍÒâζ×Å¿ª·¢Õß¿ÉÒÔ½«ÈκÎÖµ´øÈëÒ»¸ö°üº¬»ìºÏ¶ÔÏóµÄ¼¯ºÏµ±ÖУ¬µ«È´»áÔì³É¼¯ºÏÀàÐÍÄ£ºý¡£ÕâÒ²ÊÇÎÒËùÈÏΪµÄC++±ÈObjective-C¸üºÃµÄÒ»¸öµØ·½£¬C++ÓÐÔÊÐí¶¨Òå¾ß±¸ÖîÈçvector<int>µÈÌØ¶¨ÀàÐ͵ļ¯ºÏµÄTemplates¡£SwiftÔò½èÓÃÁ˼«ÎªÏàËÆµÄÓï·¨£¬ºÍ¿É¸ù¾Ý×ÔÎÒÐèÇó¶¨Òåд³öÁé»î¿ÉÖØÓõĺ¯Êý¼°ÀàÐ͵ķºÐÍ£¨Generics£©´úÂë¡£

½ÓÏÂÀ´£¬ÈÃÎÒÃÇÀ´¿´Ò»Ï²»½öʡʱ¸üÄܱÜÃâBug³öÏֵķºÐ͵ÄÒ»¸ö¼òµ¥Ê¾Àý£º

4.²»Í¬ÀàÐͶàÖØº¯Êý

ÔÚSwiftÖУ¬µ±¶¨ÒåÒ»¸öº¯Êýʱ£¬Äã¿ÉÒÔ¶¨ÒåÒ»¸ö»ò¶à¸öÓÐÃû×ÖºÍÀàÐ͵ÄÖµ£¬×÷Ϊº¯ÊýµÄÊäÈ룬Ҳ¿ÉÒÔ¶¨ÒåijÖÖÀàÐ͵ÄÖµ×÷Ϊº¯ÊýÖ´ÐнáÊøµÄÊä³ö¡£Õâ¶ÔÓÚ¶¨Òå¿ÉÊÊÓÃÓÚ¸÷ÖÖÀàÐ͵«ÐèÒª²»Í¬ÊµÏֵĺ¯ÊýÀ´Ëµ¾ø¶ÔÊÇÈ绢ÌíÒí¡£

ÔÚÉÏÃæµÄ´úÂë¶ÎÖУ¬ÎÞÔµÎ޹ʵض¨ÒåÁËmathmaticallyAddIntsºÍmathmaticallyAddStringsÁ½¸ö²»Í¬µÄº¯Êý£¬ÒòΪÆäÓÃÒâºÜÇå³þ£¬Ö»ÐèmathmaticallyAdd¼´¿É£¬ÄÇÕâÑù¾Í»áÏԵùýÓÚ·±ËöÈß³¤¡£¶¨ÒåʹÓÃInt£¬º¯Êý¿ÉÒÔֻʹÓÃ+²Ù×÷·û£¬È»¶ø£¬ÔÚ×Ö·û´®ÊµÏÖÖУ¬¸Ãº¯Êý±ØÐëÊ×ÏȽ«×Ö·û´®×ª»»ÎªÕûÊý¡£

5.ÊôÐÔ¼àÊÓÆ÷

ÔÚObjective-CÖУ¬ºÜ¶àÇé¿öÏÂÎÒ¶¼»áÖØÐ´ÊôÐÔsetter£¬ÒÔ±ãÎÒÄÜÔÚÖ´ÐÐij¸ö²Ù×÷ǰºó¶ÔÖµ½øÐÐÉèÖá£Èç¹ûÎÒ²»Ï뽫ÊôÐÔÉèÖÃΪatomicµÄ»°£¬ÄÇôÎÒ¾ÍÐèÒªÒýÓôúÂëÀ´³äµ±Êµ¼ÊÖµ·ÖÅäµ½ÎÒÏëÒªÖ´ÐеÄÄǸö²Ù×÷ÉÏ£¬ÕâÑùʵÔÚÊÇÌ«±¿×¾²»¿°ÁË¡£

·´¹ÛSwift£¬ËüÓµÓÐÒ»ÖÖÄÚÖõĻúÖÆ£¬Äܹ»ÔÚÒÆ³ý¶ÔÑù°å´úÂëµÄÐèÇóÈÎÎñÍê³Éǰºó½øÐÐ¼à¿Ø²¢ÏìÓ¦£¬ÕâÏÄܳÆÖ®ÎªÊôÐÔ¼àÊÓÆ÷£¨Property Observers£©¡£Äã¿ÉÒÔΪÊôÐÔÌí¼ÓÒ»¸öwillSet»ò£¨ºÍ£©Ò»¸ödidSet¼àÊÓÆ÷£¬willSetÔÚÉèÖÃеÄֵ֮ǰµ÷Ó㬶ødidSetÔòÊÇÔÚеÄÖµ±»ÉèÖÃÖ®ºóÁ¢¼´µ÷Óá£

willSet¼àÊÓÆ÷»á½«ÐµÄÊôÐÔÖµ×÷Ϊ¹Ì¶¨²ÎÊý´«È룬ÔÚwillSetµÄʵÏÖ´úÂëÖпÉÒÔΪÕâ¸ö²ÎÊýÖ¸¶¨Ò»¸öÃû³Æ£¬Èç¹û²»Ö¸¶¨Ôò²ÎÊýÈÔÈ»¿ÉÓ㬶øÆäĬÈÏÃû³ÆÓÃnewValue±íʾ¡£Í¬Ñù£¬didSet¼àÊÓÆ÷Ò²»á½«¾ÉµÄÊôÐÔÖµ×÷Ϊ²ÎÊý´«È룬¿ÉÒÔΪ¸Ã²ÎÊýÃüÃû»òÖ±½ÓʹÓÃĬÈϲÎÊýÃûoldValue¡£

6.ÓÅÑŵıհüÕ¼ÓÃÁбí

¾¡¹ÜSwiftµÄÄÚ´æ¹ÜÀíÈÔÈ»²ÉÓÃ×Ô¶¯ÒýÓüÆÊý£¬µ«Æä¶ÔÓÚÓ﷨ȴÓÐ׿«´óµÄ¸ÄÉÆ¡£ÔÚSwiftÖУ¬ÎÞÐèÔÚ¿éÒÔÍâÉùÃ÷weak»òunsafe_unretained±äÁ¿£¬Äã¿ÉÒÔ¶¨ÒåÒ»¸ö±Õ°üÓ¦¸ÃÈçºÎʹÓò¶»ñÁбíÀ´²¶»ñ³£Á¿»ò±äÁ¿¡£

SwiftÌṩÁËÒ»ÖÖÆÄΪÓÅÑŵķ½·¨À´½â¾öÑ­»·Ç¿ÒýÓÃËù´æÔÚµÄÎÊÌ⣬³ÆÖ®Îª±Õ°üÕ¼ÓÃÁÐ±í£¨Closuer Capture List£©¡£ÔÚÉ϶δúÂëÖУ¬³ýÁË¿ÉÒÔ³õʼ»¯URLµÄDocumentViewControllerÖ®Í⣬ÎÒ»¹¶¨ÒåÁËÒ»¸öFilePickerControllerÀà¡£µ±Óû§Ñ¡ÔñÒ»¸öÎļþʱ£¬Ëü±ã»áÌṩһ¸ö±Õ°ü³ÉÔ±£¬¶øDocumentViewControllerÔòÓÐÒ»¸ö·½·¨À´³ÊÏÖ¸ÃÎļþ²¢´¦ÀíÓû§Ñ¡ÔñÎļþµÄ²Ù×÷¡£´Ëʱ£¬Èç¹û¸Ã±Õ°üÇ¿ÁÒ²¶»ñself£¬Ôò½«²úÉúÑ­»·Ç¿ÒýÓá£

ÕâÖÖÇé¿öÏ£¬ÎÒÃ÷°×Ö»ÒªÓÐDocumentViewController£¬±Õ°üÒ²¾Í»áÓÀÔ¶´æÔÚ£¬ËùÒÔÎÒ¿ÉÒÔͨ¹ý[unowned self]ʹÓÃÎÞÖ÷ÒýÓÃÀ´½â¾öÑ­»·Ç¿ÒýÓã¬Õâ±ÈObjective-C¿ÉÒª¸É¾»µÃ¶àÁË¡£

7.¹¹Ôì¹ý³Ì¸ü°²È«

ÔÚʹÓÃObjective-C±àд³ÌÐòʱ£¬ÎÒ³£³£»á·¸Ò»¸ö´íÎó£¬×ÜÊÇÒªÎÒ×¥¿ñµØ»¨ÉϺü¸·ÖÖÓÈ¥µ÷ÊÔËü¡£Õâ¸öÎÊÌâ·Ç³£ÆÕ±é£¬¾ÍÊÇÔÚÎÒÏë¼ÓÔØÄÚÈݽøÈ¥µÄÒ»¸öÀàÖУ¬ÓÐÒ»¸ö¿É±äÊý×飬ΪÁËÄܹ»±»Ìí¼Ó½øÈ¥£¬Ê×ÏÈÐèÒª³õʼ»¯Êý×飬µ«ÎÒÈ´ÀÏÊÇ»áÍü¼Ç¡£

¶øÔÚSwiftÖУ¬±à¼­Æ÷½«»á´¦ÓÚÁ½·½ÃæµÄÔ­Òò½Ø»ñËü£¬ÆäÒ»±ãÊÇÄã±ØÐë¶ÔȡֵΪ¿ÕµÄÊôÐÔ½øÐд¦Àí£¬ÔÚ¶¨ÒåÒ»¸ö¹¹ÔìÆ÷Ö®ºó£¬Èç¹ûÄãÁôÏÂÈκÎδ³õʼ»¯µÄ³ÉÔ±±äÁ¿£¬±àÒëÆ÷±ã»áÏÔʾ´íÎó£¬Õ⽫½ÚÊ¡ÎÒ´óÁ¿µÄʱ¼ä£¬ÈçÏ£º

ÔÚObjective-CÖÐÓÐÒ»¸öÃûΪָ¶¨¹¹ÔìÆ÷£¨Designated Initializers£©µÄ¸ÅÄÿ¸öÀà¶¼Ó¦¸ÃÓÐÒ»¸ö½«È«²¿Àà¶¼³õʼ»¯ÔÚ°²È«×´Ì¬µÄ¹¹ÔìÆ÷£¬¶øÆäËû¹¹ÔìÆ÷ÔòÓ¦¸Ãµ÷ÓÃÒ»¸öÖ¸¶¨¹¹ÔìÆ÷À´È·±£ÀàÁ¼ºÃ£¬µ«ºÜÒź¶ÕâÔÚObjective-CÖв¢²»ÊÇÇ¿ÖÆÖ´Ðеġ£¶øSwiftÔò½«ÆäÈÚÈë±àÒëÆ÷£¬Õâ¾ÍÒâζ×ÅDirectoryÀà±ØÐëµ÷ÓÃinit(path)¹¹ÔìÆ÷£¬·ñÔò½«ÏÔʾ´íÎ󣬶øÔÚpathûÓб»¶¨ÒåµÄÇé¿öÏ£¬¸ÃÀཫÎÞ·¨ÊµÏÖ£¬µ±ÀàÏëÒª»ñµÃ¸ü´óµÄ¼Ì³Ðʱ£¬±ãÏÔµÃÓÈÎªÖØÒª¡£

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

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ


ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ