ÕªÒª£º±¾ÎÄ×÷ÕßÒÔÒ»¸öϵÁÐÎÄÕ¶ÔSwift½øÐÐÁËÏêϸÆÊÎö¡£ÔÚµÚһƪÖУ¬º¸ÇÁ˳£¹æ±ä»¯¡¢ÄÚ²¿µÄ¿É¼ûÐÔ¡¢Ä£Ê½Æ¥Åä¡¢Objective-CµÄ·ºÐͺÍ__kindofµÄÓ÷¨¡¢´íÎó´¦Àí¡¢Defer¹Ø¼ü×Ö¡¢¿ª·ÅÔ´ÂëµÈ11¸ö³£¹æ±ä»¯ºÍ14Ïî¸ö±ð¿´µã¡£
ºÁÎÞÒÉÎÊ£¬Swift 2.0ÔÚ2015È«Çò¿ª·¢Õß´ó»á£¨Worldwide Developers Conference, WWDC 2015£©Éϱ»·¢²¼µÄÏûÏ¢ÖÚÈ˽ÔÖª¡£ÎÒ»á¾Í¸ÃÓïÑÔËù·¢ÉúµÄ±ä»¯×«Ð´Ò»ÏµÁеÄÎÄÕ£¬µ«Ä¿Ç°ÎÒÃÇÏÈËµËµÖØµã¡£

³£¹æ±ä»¯
- ÏÖÔÚÈ«¾Öº¯ÊýºÍ¶ÀÁ¢£¨free-standing£©º¯Êý¶¼ºÍ·½·¨Ò»Ñù£¬×ñÑͬһ¸ö²ÎÊý±êÇ©¹æÔò¡£²»ÔÙʹÓã£ÕâÑùµÄÓï·¨À´ÒýÓÃÍⲿ×ÊÔ´¡£
-
Äã»ù±¾ÉÏ¿ÉÒÔʹÓÃenum SomeEnum<T,U,V>À´ÉùÃ÷multi-payload·ç¸ñµÄö¾Ù£¬ÕâÑù¾ÍÄÜÕý³£ÔËÐС£ÕâÓÃÀ´ÌáʾδÍê³ÉµÄÖ¸Áî¼Ä´æÆ÷£¨IR£©Òý·¢µÄ´íÎó¡£
-
Ìõ¼þÑ»·Óï¾äĿǰµÄÓï·¨ÊÇrepeat { } while(cond)£¬²»ÔÙʹÓÃdo¡£
-
¹Ø¼ü×ÖdoĿǰÓÃÀ´ÒýÈëÒ»¸öеÄ×÷ÓÃÓò£¨Õâ¶ÔÐÂÒý½øµÄ´íÎó´¦ÀíºÍ defer ¹Ø¼ü×ÖºÜÖØÒª£©¡£ÔÚ C ÓïÑÔÖÐÄã¿ÉÒÔÓôóÀ¨ºÅ£¬µ« Swift Àï¾ÍÒªÀí½âΪ±Õ°ü£¨closure£©¡£ËùÒÔʹÓùؼü×Ödo¿ÉÒÔÈÎÒâÒýÈë×÷ÓÃÓò¡£
-
guardÓï¾ä¿éÏÔʽµØÉùÃ÷ÄãÒªºã³ÉÁ¢µÄÌõ¼þÓï¾ä£¬ºã³ÉÁ¢Ê±Ìø¹ýÕû¸öguard Óï¾ä¡£ÕâÑù×öµÄºÃ´¦Êǰó¶¨ÔÚguardÓï¾äµÄ±äÁ¿ÔÚº¯ÊýµÄÆäËû²¿·ÖÒ²¿ÉÓá£Õâ¾Í±ÜÃâÁ˽«ËùÓеĶ«Î÷¶¼Î§ÈÆÒ»ÌõifÓï¾äǶÌ×ʹÓÃÀ´½âÎö£¨unwrap£©¿ÉÑ¡ÀàÐ͵ıäÁ¿¡£Ö´Ðе½º¯ÊýÖÐguardÓï¾äÖеÄelse²¿·Ö£¬º¯ÊýÒ»¶¨»áÍ˳ö²¢Å׳öÒì³£¡£Ò²¿ÉÄÜ»áµ÷ÓôøÓÐ@noreturn±ê¼ÇµÄº¯Êý¡£
-
Îı¾×¢ÊÍ£¨doc comments£©»»³ÉÁËMarkdown¸ñʽ£¬ÓëPlaygroundsͳһ£¨Playgrounds×¢Ê͸ñʽԴÓÚ¹¦ÄÜÓÐÏÞµÄreStructured Text£©¡£
-
±àÒëÆ÷¶ÔÈßÓàµÄÐÒéÒ»ÖÂÐÔ£¬Î´±»Ê¹Óõİó¶¨ÖµÒÔ¼°¿ÉÒÔÉèΪ³£Á¿µÄ±äÁ¿ÕâЩÇé¿öĿǰ»á¸øÓ辯¸æ»ò±¨´í¡£
-
SwiftÓïÑԵĵ÷ÓÃÔ¼¶¨¸ü¼ÓÖÇÄÜ£¬Äܹ»Àí½â API Ëù·¢ÉúµÄ±ä»¯ºÍ Swift Ëù¸ø³öµÄ¾¯¸æ¡£²¢ÇÒ»¹¿ÉÒÔÉý¼¶£¨µ«»¹²»ÊÇÄÇôÍêÃÀ£¬Ò»¶¨»¹Â©µôÁËһЩ¶«Î÷£©¡£
-
findº¯Êý¸ÄÃûΪindexOf£¬sortÔò±ä³ÉÁËsortInPlace£¬sorted±ä³ÉÁËsort¡£
-
String²»ÔÙÖ±½Ó×ñÑÐòÁÐÀàÐÍ£¨SequenceType£©£¬´ó¸ÅÊÇΪÁ˱ÜÃâһЩеĿÉÓÃÐÒéÀ©Õ¹¡£Ä¿µÄÊÇÆÈʹÄãʹÓÃs.characters£¬s.utf8»òs.utf16Ã÷È·ÄãÏë´¦ÀíµÄunicode±àÂë¡£
-
ÔÊÐí¶Ô·ºÐÍÌí¼Ó¹«¹²À©Õ¹¡£
-
·Ç·ºÐÍÀàÀàÐÍ¿ÉÒԼ̳зºÐÍÀà£¨Ç¿ÖÆÀàÐͲÎÊý¹Ì¶¨£©¡£
-
±ãÀûµÄ¿Éʧ°Ü¹¹ÔìÆ÷£¨failable initializer£©¿ÉÒÔÏÈ·µ»Ønil£¬¶ø²»±ØÊ×Ïȵ÷ÓÃself.init¡£ÕâÊÇÓÐÀûµÄÒ»Ãæ£¬µ«Ö¸¶¨Á˹¹ÔìÆ÷ÔÚ·µ»ØnilǰÈÔÒª¸øËùÓÐ×ֶγõʼ»¯¡£ËùÒÔ´Ë´¦»¹ÓиĽøµÄÓàµØ¡£
ÄÚ²¿µÄ¿É¼ûÐÔ
Õâ½â¾öÁ˵¥Ôª²âÊÔÖеÄÒ»¸ö½Ï´óµÄÄѵ㡣ÒÔǰµÄ×ö·¨£º
- SwiftÎļþ°üº¬ÔÚtest targetÖС£ÏÖÔÚ²»Í¬µÄÄ£¿éÖÐÓÐÖØ¸´µÄÀàµÄ¶¨Ò壬³öÏÖÎÞ·¨½«¡°X¡±×ª»»Îª¡°X¡±ÕâÑù·Ç³£¿ÉŵĴíÎó£¬ÓÐʱ»áÎÞ·¨Ö´ÐÐÌØ¶¨µÄ²âÊÔ¡£
-
ÔÚ²âÊÔÖÐÒýÈëÒýÈëÖ÷³ÌÐò£¨main program£©×÷Ϊһ¸öÄ£¿é¡£ÏÖÔÚÒ»Çж¼ÉùÃ÷Ϊpublic£¬ËùÒÔ¶ÔÓÚ²âÊÔÀ´Ëµ¶¼ÊǿɼûµÄ£¬ÓÐʱºòÒ²°üÀ¨Ó¦¸ÃÉùÃ÷ΪprivateµÄÄÚ²¿Ï¸½Ú¡£
ÏÖÔÚ¿ÉÒÔÆôÓÃtestability£¬Ëü¾ÍÏñC££ÖеÄInternalsVisibleTo¡£Ö÷Ó¦ÓóÌÐòÄ¿±êÄ£¿éµÄÄÚ²¿Ï¸½Ú¶Ô²âÊÔÄ£¿é¿É¼û¡£
- ÔÚ¶ÔÓ¦Óûò¿ò¼ÜµÄ²âÊÔÉèÖÃÖУ¬ÆôÓÃtestability¡£
-
ÔÚµ¥Ôª²âÊÔÖУ¬Ê¹ÓÃ@testable import {ModuleName}¡£
Õ⽫µ¼Ö²âÊÔºöÂÔijЩÓÅ»¯ÐÐΪ²¢±£ÁôÉÔºóµ¼Èëµ½²âÊÔÄ£¿éÖеÄÄÇЩÄÚ²¿·ûºÅ¡£¹Ù·½Îĵµ¾¯¸æËµ£¬ÓÉÓÚ×èÖ¹ÁËijЩÓÅ»¯£¬Òò´ËÕâÖ»ÊÊÓÃÓÚµ÷ÊԺͲâÊÔ°æ±¾¡£
ģʽƥÅä
switchÓï¾äµÄģʽƥÅ䣨pattern matching£©Óï·¨ºÍ¡°if let ..., .... where¡±Óï·¨Ò»Ö±ÔÚÍÆ¹ã¡£¿ÉÒÔÔÚÈκοØÖÆÁ÷ÖÐʹÓöººÅ²Ù×÷·ûºÍwhereÌõ¼þÓï¾ä¡£»¹¿ÉÒÔʹÓÃеÄcaseÌõ¼þÓï¾ä£¬ÀýÈ磺if case .Silly(let a) { }¡£»¹ÓÐÒ»ÖÖÓÃÓÚOptional<T>µÄÌØÊâÐÎʽ£ºif case let a = anOptional { }¡£
ģʽƥÅäÔÚÑ»·Óï¾äÖÐÒ²¿ÉÒÔʹÓãºfor case let thing in array { }¡£
ÕâÓÖÊÇÖµµÃµ¥¶À³ÉÎĵÄÁíÒ»¸öÌØÐÔ¡£
Objective-CµÄ·ºÐͺÍ__kindofµÄÓ÷¨
ÔÚ¹ØÓÚSwiftµÄÎÄÕÂÀï̸ÂÛÕâ¸ö×öÉõ£¿ËüµÄ×÷ÓÃÊÇʹijЩÏνӸü¼ÓÇåÎúºÍ¼ò±ã¡£²»ÇóÔÚÕâÆªÎÄÕÂÖÐ̾̾¾ãµ½£¬ÎÒ»áÔÙµ¥ÆðһƪÎÄÕ²ûÊöËü¡£
´íÎó´¦Àí
Õâ²»ÊÇÎÒÃÇÒ»¹áËùÈÏʶµÄÒì³££¬ÕâÊÇÒ»¸öʹº¯ÊýÌáǰ·µ»ØResult<T, Error>µÄ²Ù×÷£¬µ¥Òþ²ØÁËËùÓÐÌáǰ·µ»ØµÄ¶ÔÏó£¬Ò²Òþ²ØÁË´íÎó½âÎö£¨error unwrapping£©¹ý³ÌµÈÄÚÈÝ¡£
let systemAttributes: [NSObject: AnyObject] 2.do { 3. systemAttributes = try NSFileManager.defaultManager() .attributesOfFileSystemForPath(documentDirectoryPath.last!) 4.} catch _ { 5. systemAttributes = nil 6.}
|
ËüÍêÃÀµØÓëObjective-C½øÐл¥²Ù×÷£¬SwiftÓïÑÔÖУ¬½«±ê¼ÇΪthrowsµÄ·½·¨×÷ΪѡÔñÆ÷¡£ÕâÊÇʹÓÃNSErrorµÄ·½·¨£¬-(BOOL or nullable type)someMethodTakingParam:(type)param error:(NSError **)£¬ÕâÖÖÑùʽ»á×Ô¶¯ÒýÈë±ê¼ÇΪthrowsµÄ·½·¨¡£
Ó¦¸ÃÃ÷°×µÄÊÇÕâ²¢²»ÏñJavaÖÐÒѾ±»¼ì²é¹ýµÄÒì³££¨checked exception£©ÄÇÑù¡£SwiftÓïÑÔ²¢²»¹ØÐÄÒì³£µÄÀàÐÍ£¬»òÕß´¦Àí»òÕß²»´¦Àí¡£ÕâÓÖÊÇÖµµÃµ¥¶À³ÉÎĵÄÁíÒ»¹¦ÄÜÌØÐÔ¡£
Defer¹Ø¼ü×Ö
¹Ø¼ü×ÖdeferÒ²ºÜÖØÒª£¬ÒòΪËü¿ÉÒÔÈ¡´ú´«Í³C·ç¸ñµÄ¡°if(err) goto cleanup¡±¡£»ñµÃ×ÊÔ´ºó½ÓמÍÊÇdefer { release_resource() }¡£È»ºó²»¹Üº¯Êý·µ»Ø½á¹ûÈçºÎ£¬»ñµÃµÄ×ÊÔ´¶¼½«±»ÇåÀí¡£ÕâÒ²Òâζ×Å×ÊÔ´µÄÊͷŽôËæ»ñÈ¡×ÊÔ´Ö®ºó¡£Õâ¿´ÆðÀ´²»ÆðÑÛ¶ù£¬ÊµÔòºÜÖØÒª¡£
NS_OPTIONSºÍOptionSetType
λ²Ù×÷ö¾Ù£¨bitwise enumeration£©ÓëÊý×é·ç¸ñµÄÓï·¨Ïà½áºÏ£¬¶ø²»Ê¹ÓùܵÀ·û¡° | ¡±°´Î»²Ù×÷£¬²¢ÇÒ¾ßÓÐËùÓз¶Î§µÄ¼¯ºÏ²Ù×÷¹¦ÄÜ¡£¼ì²éÒ»ÏÂÊÇ·ñ¾ßÓÐcontains¹¦ÄܵıêÖ¾£¬»òÄܹ»Ö´ÐÐÏñisSubsetOfºÍisDisjointWithµÈÕâÑù¼¯ºÏ²Ù×÷µÄÆäËû¹¦ÄÜ¡£ÕâÊÇÏÔÖøµÄ¸Ä½ø£¬±í´ïÁ˲»Ö±½Ó¶Ôλ½øÐвÙ×÷µÄÒâÔ¸¡£
ÕâÖֱ仯Òâζ×Åλ²Ù×÷ö¾Ùʵ¼ÊÉϲ»ÔÙÊÇö¾ÙÁË¡£½«ÕâЩλ²Ù×÷ö¾ÙÉùÃ÷Ϊ½á¹¹Ì壬ʵÏÖOptionSetTypeÐÒ飬ÌṩrawValueÊôÐÔ¡£²¢ÇÒ´´½¨Öµ×÷Ϊ½á¹¹ÌåµÄ¾²Ì¬³ÉÔ±¡£Swift±ã»á¸ã¶¨ÆäÓàµÄÒ»ÇУ¬×Ô¶¯ÌṩËùÓм¯ºÏµÄ²Ù×÷¡£ÕâÊÇÎÒÏ£Íû½«À´¿´µ½µÄ¸ü¼ÓÃ÷Á˵ÄÓï·¨ÄÚÈÝ¡£
ÐÒéÀ©Õ¹
ÐÒéÈç½ñ¿ÉÒÔ±»À©Õ¹ÁË£¬°üÀ¨ÓëÀàÐÍÔ¼ÊøÓйصÄͨÓÃÐÒé¡£»¹¿ÉÒÔ×Ô¼ºÌṩÐÒéµÄĬÈÏʵÏÖ¡£
ÏÈǰ£¬Äã²»ÄÜÄã˵£º¡°ÎÒҪʹÓ÷½·¨XÀ´À©Õ¹CollectionType£¬µ«Ö»Óм¯ºÏÖеÄÀàÐÍÂú×ãijЩÌõ¼þ²Å¿ÉÒÔ¡±¡£ÏÖÔÚ£¬Äã¿ÉÒÔÕâô×ö£¬²¢ÇҺܶàÏñmap£¬filterºÍsortÕâÑùµÄÈ«¾Öº¯ÊýÒѾ½øÐÐÁËÀ©Õ¹¡£
ÕâÑù¾Í½â¾öÁ˺ܶàÍ´µã£¬ÕâÒ²ÊÇÖµµÃµ¥¶À³ÉÎĵÄÄÚÈÝ¡£Í¬Ê±£¬Òª¿´¿´WWDCµÄÃæÏòÐÒé±à³Ì£¨Protocol Oriented Programming£©Á˽âһЩϸ½Ú¡£
APIÉó¼Æ
´óÁ¿µÄAPIÒѾ½øÒ»²½½øÐÐÁËÉ󼯶ø¸üºÏÀí¡£¾Ù¼¸¸öÀý×Ó£º
- UITableViewµÄdequeueReusableCellWithIdentifier·½·¨ÏÖÔÚ·µ»ØUITableViewCellÀàÐ͵ĶÔÏó¡£
-
UIKitµÄÊôÐÔÏÖÔÚÒ²±»ÉùÃ÷ΪÁËʵ¼ÊµÄÊôÐÔ¡£
ÓÃtranslatesAutoresizingMaskToConstraints = false´úÌæÁËsetTranslatesAutoresizingMaskToConstrains(false)¡£
AvailabilityÊôÐÔ
@availableÊôÐÔ×ÔSwift 1.2¾Í´æÔÚÁ˲¢ÇÒºóÐøÖ§³ÖµÃºÜºÃ¡£Ìí¼ÓÁËÒ»¸öеÄİÉúÓï·¨if#available()£¬Îª´¦Àí°æ±¾¼ì²éÌṩÁËÖ§³Ö¡£¶ø²»ÊDzåÈëÄãϲ»¶µÄ·½·¨¡£
Òź¶µÄÊÇÄã²»ÄÜÖ»ÉùÃ÷Ò»¸öÊôÐÔUISearchController²¢½«targetÉèÖÃΪiOS 7£¬È»ºóÖ»ÔÊÐí·ÃÎÊÀàÖеÄÊôÐÔ¡£SwiftÏ£ÍûÕû¸öÀàµÄ¶¨Òå¶¼¿ÉÒÔ»òÕß²»¿ÉÒÔ¡£
Ò²¿ÉÒÔ²»ÔÙ²ÉÓÃÐÒ飬³ý·ÇÖ§³ÖtargetÉèÖÃÖÐËùÓеIJÙ×÷ϵͳ°æ±¾£¬³ý·Ç½«Õû¸öÀà±ê¼ÇΪֻÔÚ¸üеIJÙ×÷ϵͳ°æ±¾¿ÉÓá£
ÕâÒâζ×ÅʹÓÃif #available()´æÔÚµ¥¶ÀµÄ×ÓÀàºÍ¶Ô´´½¨Êʵ±¶ÔÏóµÄ±£»¤¡£
¾¡¹ÜÈç´Ë£¬ÎÒ¸öÈË»¹ÊÇ·¢ÏÖÁËÒ»¸öBug£¬Ó¦ÓÃÔÚiOS 4.0-4.1·¢Éú±ÀÀ££¬ÓÉÓÚ±àÒëÆ÷ûÓз¢³ö¾¯¸æ£¬·½·¨Ö»ÔÚiOS4.2²ÅÒýÈ룬Òò´ËÎÒÓÌÈçÓ붨ʱըµ¯Ïà°é¡£
Cº¯ÊýÖ¸Õë
SwiftÏÖÔÚ¿ÉÒÔʹÓÃCº¯ÊýÖ¸Õ룬CFunctionPointerÒѲ»¸´´æÔÚ¡£ÈκÎÈ«¾Öº¯Êý£¬Ç¶Ì׺¯ÊýºÍ²»²¶»ñ״̬µÄ±Õ°ü¶¼¿ÉÒÔ×÷Ϊһ¸öCº¯ÊýÖ¸ÕëÖ±½Ó´«µÝ¡£ÄãÒ²¿ÉÒÔµ÷ÓÃÀ´×ÔC³ÌÐòµÄº¯Êý¡£
Äã¿ÉÒÔÏÔʾµØÊ¹ÓÃÐÂÊôÐÔ@convention(c)£¬±íʾº¯ÊýÓ¦¸ÃʹÓÃCµ÷ÓÃÔ¼¶¨£¬¼òµ¥Í´¿ì£¡¾¡¹ÜÎÒÏë²»³öÔڴ˶Կ飨block£©µÄÖ§³ÖÓкÎÓã¬×÷ΪËù·¢Éú±ä»¯µÄÒ»²¿·Ö£¬@objc_blockÒ²±»É¾µôÁË£¬Ê¹ÓÃ@convention(block)È¡¶ø´úÖ®¡£@convention(swift)ĬÈÏÖ§³ÖËùÓк¯ÊýºÍ±Õ°ü¡£
¿â
Õâ²¢²»ÊDZà³ÌÓïÑÔËùÌØÓеġ£iOS 9º¬Óв»Í¬°æ±¾µÄSwift±ê×¼¿â£¬²¢ÇÒÔÚδÀ´ÏµÍ³Öн«Ìí¼ÓÐÞÕýºóµÄSwift±ê×¼¿â¡£½áºÏеÄApp Thining¼¼Êõ£¬ÏÂÔØ¹ý³ÌÖÐÆ»¹ûÉ̵ê»á½«Swift±ê×¼¿â°þÀë³öÈ¥µÄ¡£ÎÒÈÔÈ»ÔÚ×·¸ùËÝÔ´µØÌ½ÇóÕ⾿¾¹ÊÇÈçºÎ¹¤×÷µÄ¡£
ÒÅ©
Ã÷ÏÔµÄÒ»¸öÒÅ©ÊÇ´¦ÀíÒì²½´úÂë¡£
Æ»¹û¹«Ë¾ÎªÎÒÃÇÌṩÁËGCD£¬ÕâÊÇÒ»¸öÇ¿´óµÄ»ù´¡Àà¿â£¬¿ÉÒÔ¹¹½¨ºÜ¶àÒì²½²Ù×÷ºÍ²¢·¢ÔÓï¡£
È»¶ø£¬ÕâЩÌìÎÒÃÇ×öµÄÿ¼þÊ£¬¹¹½¨Óû§½Ó¿ÚºÍAPI¶¼ÐèÒª¿¼ÂÇÒì²½ÐԺͲ¢·¢ÐÔ¡£ÎÒÃǰÑÒ»¸öÎļþ¶Á²Ù×÷Ëø¶¨Ò»¶Îʱ¼ä£¬¶ÔÓû§À´ËµÕû¸öÊÀ½ç¾Í¶¼¾²Ö¹ÁË¡£
ÕâÊǸö³ÖÐøµÄÍ´µã£¬²»ÊǶà´óµÄʶù£¬µ«Èç¹û¾³£ÐÔµØÃ¿ÌìÖØ¸´£¬¿ÖÅÂÒ²ÊDz»Ðеġ£
C££ºÍJavaScript¶¼²ÉÓÃÁËasync/awaitÀ´ÎªÒì²½´úÂëÌṩһÁ÷µÄÓïÑÔÖ§³Ö¡£ÎÒÏëºÜ¶àÈ˶¼ÏëÖªµÀ£¬Swift»áÌṩʲôÑùµÄÓï·¨ÌÇÀ´°ïÖúÎÒÃÇÔÚʵÏÖÒì²½²Ù×÷·½ÃæÈ·±£ÕýÈ·ÐÔ¡£ÎÒ²»ÖªµÀÔÚSwift 2.0·¢²¼µÄʱ¼ä¿ò¼ÜÄÚÊÇ·ñ»á¿´µ½Ê²Ã´£¬µ«Ô¸ÄÜÓкõĶ«Î÷³öÏÖ°É£¡
¿ª·ÅÔ´Âë
Ðû²¼µÄÄÚÈÝÖУ¬·´Ïì×îÇ¿ÁÒµÄÎÞÒÉÊÇSwift¿ª·ÅÔ´´úÂ롣ƻ¹û¹«Ë¾ÒѾ³ÐŵÔÚ½ñÄêµ×ǰ¿ª·ÅÔ´Â룬ÎÒÃÇҲûÓÐÀíÓɶԴ˱íʾ»³ÒÉ¡£ÓëÆ»¹û¹«Ë¾±àÒëÆ÷ÍŶӳÉÔ±ÌÖÂÛ¹ý³ÌÖУ¬ËûÃÇ¿´ÆðÀ´Ëƺõ¶Ô´ËÓÉÖÔµØÐË·Ü£¬ÎÞÂÛÈçºÎ¼á¾öÒª¸É³ÉÕâ¼þÊ£¨ÎÒÓеãСʧÍû£¬ËûÃÇûÓдòÔì³ö¾µäµÄÆ»¹ûÈ»ºóÐû²¼¿ªÔ´£¬µ«ÎÒÈÔÈ»¶Ô´ËÏûÏ¢·¢×ÔÄÚÐĵظе½¸ßÐË£©¡£
½áÂÛ
Swift 2.0ÓкܶàÁîÈËϲ°®Ö®´¦¡£Æ»¹û¹«Ë¾µÄSwiftÍŶÓÏò´ó¼Ò³ÐŵËûÃÇ»áѸËÙÐж¯¡£µ½Ä¿Ç°ÎªÖ¹ÕâЩ³ÐŵÒѾ±»¶ÒÏÖ¡£³ÉΪƻ¹ûƽ̨ÉϵĿª·¢ÈËÔ±ÊÇÒ»¸ö¼¤¶¯ÈËÐĵÄʱ¿Ì¡£
|