éå»6ãæéã«åºçã®ãã³ãã§åãäžããããæãçããŠãããããã¯ã®äžã§ãSwiftããã°ã©ãã³ã°èšèªã«ã¯ç¹å¥ãªå ŽæããããŸãã æ¬§ç±³ã®éçºè ããã®å€§ããªé¢å¿ãšããã®ããŒãã«é¢ããæ¬ã®è±å¯ãªæ¬ã§ãèšèªã¯ãŸã ããªãçã ããèŠããŸãã ãããã£ãŠãæ°ããèšèªã®é¢é£æ§ã«ã€ããŠèª¿æ»ãããProgramming iOS 8ïŒDive Deep into ViewsãView Controllersãand Frameworksããšããæ¬ã®èè ã§ãã壮倧ãªMatt Neuburgã®æçš¿ã«ç²Ÿéããããšãææ¡ããŸãã èè ã¯ãã¢ããªã±ãŒã·ã§ã³ã®æ°ããAppleèšèªãžã®ç¿»èš³ã«ã€ããŠè©³çްã«èª¬æãããç®ãæã-æãããŠãããããšã蚌æããŠããŸãã
幞ããªèªæžãšå®ãå€ãå®éšã
Objective-Cã§èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ãæ¢ã«ããå Žåã¯ãSwiftã§ã¢ããªã±ãŒã·ã§ã³ãæžãçŽããŠã¿ãŠãã ããã ããã¯ãSwiftèšèªã«ç²ŸéããSwiftã詊ããŠãSwiftãã¡ã€ã³ãã¯ãããžãŒãšããŠéžæããæºåãã§ããŠãããã©ãããèªåã§å€æããçµ¶å¥œã®æ©äŒã§ãã ãã®ãããªç§»è¡ãããã€ãã®å®éã®ã¢ããªã±ãŒã·ã§ã³ã§å®è¡ããããšãã§ããŸããããã®èšäºã§ã¯ããã®çµéšããåéããããã€ãã®èгå¯çµæãå ±æããããšæããŸãã
ãã€ããªããã¢ã»ã³ããª
ãã¡ããããã¹ãŠã®ã³ãŒããããã«Swiftã«ç¿»èš³ããå¿ èŠã¯ãããŸããã ã¯ã©ã¹ããšã«æžãçŽãå¯èœæ§ãéåžžã«é«ããªããŸãã Objective-Cã§èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ã®ã¢ã»ã³ããªã«Swiftãã¡ã€ã«ã远å ãããšããã«ããã®ã¢ã»ã³ããªã¯ãã€ããªããã«ãªããŸãã ãã®äžã®ããã€ãã®ã¯ã©ã¹ã¯Objective-Cã«æ®ããä»ã®ã¯ã©ã¹ã¯Swiftã§æžãããŸãã ãããã£ãŠããã¹ãŠã®å®£èšãäž¡æ¹ã®èšèªã®ã³ãŒãã§è¡šç€ºãããããã«ããå¿ èŠããããŸãã ãã®äœæ¥ãå§ããåã«ããã®ãããªå¯èŠæ§ã®ã¡ã«ããºã ãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã
èŠããŠããããã«ãObjective-Cã¯ã©ã¹ã®å®£èšã¯éåžžã2ã€ã®éšåã«åãããŠããŸããã€ã³ã¿ãŒãã§ã€ã¹ã»ã¯ã·ã§ã³ãå«ãããããŒãã¡ã€ã«ïŒ.hïŒãšã@ implementationã»ã¯ã·ã§ã³ãå«ãã³ãŒããã¡ã€ã«ïŒ.mïŒã§ãã .mãã¡ã€ã«ã«ã¯ã©ã¹æ å ±ãå¿ èŠãªå Žåããã®ã¯ã©ã¹ã®.hãã¡ã€ã«ãã€ã³ããŒãããŸãã
SwiftãšObjective-Cã³ãŒãã®çžäºå¯èŠæ§ã¯ã次ã®èŠåã«åºã¥ããŠããŸãã.hãã¡ã€ã«ã¬ãã«ã§æäŸãããŸãã å¯èŠæ§ã«ã¯2ã€ã®æ¹åããããããããåå¥ã«èæ ®ããå¿ èŠããããŸãã
SwiftãObjective-Cãèªèããæ¹æ³
Swiftãã¡ã€ã«ãObjective-Cã®ã¢ã»ã³ããªã«è¿œå ããå ŽåããŸãã¯Objective-Cãã¡ã€ã«ãSwiftã®ã¢ã»ã³ããªã«è¿œå ããå ŽåãXcodeã¯ããªããžããããŒãäœæããããã«æ±ããŸãã ããã¯ããããžã§ã¯ãã®äžéšã§ãã.hãã¡ã€ã«ã§ãã ããã©ã«ãã§ã¯ããã®ååã¯ã¢ã»ã³ããªã«ä»£ãã£ãŠäœæãããŸãããäžè¬ã«ä»»æã§ãããObjective-Cã¢ã»ã³ããªã®ããªã³ã¯ããããŒãèšå®ãåæ§ã«å€æŽããå Žåã¯å€æŽã§ããŸãã
Objective-Cã®.hãã¡ã€ã«ã¯ããã®ãªã³ã¯ããããŒã«ã€ã³ããŒãïŒ#importïŒãããŠããã°ãSwiftã«è¡šç€ºãããŸãã
Objective-CãSwiftãèªèããæ¹æ³
ãªã³ã¯ããããŒãããå Žåãã¢ã»ã³ããªãäœæãããšããã¹ãŠã®Swiftãã¡ã€ã«ã®å¯Ÿå¿ãããããã¬ãã«å®£èšãèªåçã«Objective-Cã«å€æãããDerivedDataãã©ã«ããŒã®æ·±ãå Žæã«ãããã®ã¿ãŒã²ããã¢ã»ã³ããªã®Intermediatesãã£ã¬ã¯ããªã«é ããªã³ã¯ããããŒãäœæããããã«äœ¿çšãããŸãã ãã®é衚瀺ããããŒã¯ãã¿ãŒããã«ãŠã£ã³ããŠã«å ¥åãããæ¬¡ã®ã³ãã³ãã䜿çšããŠæãç°¡åã«è¡šç€ºã§ããŸãã
$ find ~/Library/Developer/Xcode/DerivedData -name "*Swift.h"
ããã«ãããé衚瀺ã®ãªã³ã¯ããããŒã®ååãèªèãããŸãã ãŸãã¯ãã¿ãŒã²ããã¢ã»ã³ããªã®[補åã¢ãžã¥ãŒã«å]èšå®ã衚瀺ïŒãŸãã¯å€æŽïŒããŠã¿ãŠãã ããã é衚瀺ã®ãªã³ã¯ããããŒã®ååã¯ãããã§æå®ãã補ååã«åºã¥ããŠäœæãããŸãã
Swift宣èšã¯ããããã®Swiftãã¡ã€ã«ã衚瀺ããããã¹ãŠã®Objective-Cãã¡ã€ã«ã«ãã®é ããªã³ã¯ããããŒãã€ã³ããŒãïŒ#importïŒããããšãæ¡ä»¶ã«ãObjective-Cãã¡ã€ã«ã«è¡šç€ºãããŸãã
ç¶æ³ã¯ã.mãã¡ã€ã«ã®äžéšã®é衚瀺ãªã³ã¯ããããŒãæ£ç¢ºã«ã€ã³ããŒããããå Žæããå€§å¹ ã«å€åããå¯èœæ§ããããŸãã äžè¬çãªã¢ã©ãŒã ã¯ããäžæãªã¿ã€ãåãã®ã³ã³ãã€ã«ãšã©ãŒã®åºçŸã§ããäžæãªã¿ã€ãã¯Objective-Cã§å®£èšãããã¯ã©ã¹ã§ãã ãã®åé¡ã解決ããã«ã¯ãé衚瀺ã®ãªã³ã¯ããããŒãã€ã³ããŒãããåã«ãäžæãªå宣èšãå«ã.hãã¡ã€ã«ãObjective-Cãã¡ã€ã«ã«ã€ã³ããŒãããå¿ èŠããããŸãã ãã®ãããªäœæ¥ã¯ãç¹ã«åé¡ã®Objective-Cãã¡ã€ã«ããã®ã¯ã©ã¹ãç¥ãå¿ èŠããªãå Žåã¯é¢åãªããšããããŸããããã®æ¹æ³ã§åé¡ãæ¬åœã«è§£æ±ºãããã®åŸã³ã³ãã€ã«ãç¶è¡ã§ããŸãã
é ã远ã£ã説æ
倿Žãè¡ãåã«ãgitã§æ°ãããã©ã³ããäœæããŸãã æ¬¡ã«ãObjective-CããSwiftã«ã¯ã©ã¹ã1ã€ãã€è»¢éããŸãã æ¬¡ã®ã¢ã«ãŽãªãºã ã«åŸã£ãŠãããè¡ããŸãã
- Swiftã«å€æãã.mãã¡ã€ã«ãéžæããŸãã Objective-Cã¯Swiftã¯ã©ã¹ãç¶æ¿ã§ããªãããããµãã¯ã©ã¹ããå§ããŠãObjective-Cã§ãµãã¯ã©ã¹ãšã¯ã©ã¹èªäœã®äž¡æ¹ãå®çŸ©ããå¿ èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ããªã²ãŒãã¯ã©ã¹ã¯æåŸã«ç¿»èš³ãããŸãã
- ãã®.mãã¡ã€ã«ãã¿ãŒã²ããã¢ã»ã³ããªããåé€ããŸãã ãããè¡ãã«ã¯ã.mãã¡ã€ã«ãéžæãããã¡ã€ã«ã€ã³ã¹ãã¯ã¿ãŒã䜿çšããŸãã
- 察å¿ãã.hãã¡ã€ã«ãã€ã³ããŒããããã¹ãŠã®Objective-Cãã¡ã€ã«ã§ãïŒimportã¹ããŒãã¡ã³ããåé€ãã代ããã«é衚瀺ã®ãªã³ã¯ããããŒãã€ã³ããŒãããŸãã ïŒé ããªã³ã¯ããããŒããã®ãã¡ã€ã«ã«æ¢ã«ã€ã³ããŒãããŠããå Žåã¯ããã®æé ãç¹°ãè¿ãå¿ èŠã¯ãããŸãããïŒ
- 察å¿ãã.hãã¡ã€ã«ããªã³ã¯ããããŒã«ã€ã³ããŒãããå Žåã¯ãïŒimportã¹ããŒãã¡ã³ããåé€ããŸãã
- ãã®ã¯ã©ã¹ã®.swiftãã¡ã€ã«ãäœæããŸãã ã¿ãŒã²ããã¢ã»ã³ããªã«è¿œå ãããŠããããšã確èªããŠãã ããã
- .swiftãã¡ã€ã«ã§ãã¯ã©ã¹ã宣èšãã.hãã¡ã€ã«ã§å ¬éããããã¹ãŠã®ã¡ã³ããŒã®ã¹ã¿ã宣èšãé 眮ããŸãã ãã®ã¯ã©ã¹ãCocoaãããã³ã«ã«æºæ ããå¿ èŠãããå Žåã¯ãããããåãå ¥ããŸãã ãŸãããã®ãããã³ã«ã®ãã¹ãŠã®å¿ é ã¡ãœããã«ã¹ã¿ã宣èšãæäŸããå¿ èŠããããŸãã ãã®ãã¡ã€ã«ããObjective-Cã®ã¿ãŒã²ããã¢ã»ã³ããªã§ãŸã 宣èšãããŠããä»ã®ã¯ã©ã¹ãåç §ããå¿ èŠãããå Žåã¯ããããã®.hãã¡ã€ã«ããªã³ã¯ããããŒã«ã€ã³ããŒãããŸãã
- ããã§ãããžã§ã¯ããã³ã³ãã€ã«ãããŸãïŒ ãã¡ããã.swiftãã¡ã€ã«ã«ã¯ãŸã å®éã®ã³ãŒãããªããããæ©èœããŸããã ããããããã¯æ¬åœã«åé¡ãªã®ã§ããããïŒ ã ããããžã£ãŒã¯ã®ããã®ããŒã«ïŒ
- ããã§ã.swiftãã¡ã€ã«ã«ã³ãŒããèšè¿°ããŸãã çµæãæ £çšçã§ã¯ãªãå Žåã§ãïŒSwiftïŒãå ã®Objective-Cãã¡ã€ã«ã®ã³ãŒãã1è¡ãã€ç¿»èš³ããããšã奜ã¿ãŸãã
- ãã®.mãã¡ã€ã«ã®ã³ãŒããSwiftã«å®å šã«å€æããããããã«ãããŠå®è¡ãããã¹ãããŸãã ã©ã³ã¿ã€ã ããã®ã¯ã©ã¹ãèŠã€ããããšãã§ããªãããšãèªãå ŽåïŒç¹ã«åæã«ã¯ã©ãã·ã¥ããå ŽåïŒãnibãšãã£ã¿ãŒã§ãããžã®ãã¹ãŠã®ãªã³ã¯ãæ¢ããIDã€ã³ã¹ãã¯ã¿ãŒã§ã¯ã©ã¹åãåå ¥åããŸãïŒãŸãã倿Žãèšå®ããããã«TabãæŒããŸãïŒ ã ãã¹ãŠãä¿åããŠå詊è¡ããŠãã ããã
- 次ã®.mãã¡ã€ã«ãžïŒ äžèšã®ãã¹ãŠã®æé ãç¹°ãè¿ããŸãã
- ä»ã®ãã¹ãŠã®ãã¡ã€ã«ã翻蚳ãããããã¢ããªã±ãŒã·ã§ã³ããªã²ãŒãã¯ã©ã¹ã翻蚳ããŸãã ãã®æ®µéã§ãObjective-Cã«ã¿ãŒã²ããã¢ã»ã³ããªã«ãã¡ã€ã«ãæ®ã£ãŠããªãå Žåã¯ãmain.mãã¡ã€ã«ïŒã¢ããªããªã²ãŒãã¯ã©ã¹å®£èšå±æ§ã®@UIApplicationMain屿§ã«çœ®ãæããŸãïŒãš.pchãã¡ã€ã«ïŒããªã³ã³ãã€ã«æžã¿ããããŒïŒãåé€ã§ããŸãã
ãã¹ãŠã®ã³ãŒããSwiftã«ç¿»èš³ããå¿ èŠããããšã¯æããªãã§ãã ããã äžéšã®ã»ã¯ã·ã§ã³ã¯ãObjective-Cã«æ®ãã»ããããå ŽåããããŸãããããã¯å®å šã«æ£åžžã§ãã å®éãSwiftãã¢ã¯ã»ã¹ã§ããªãCocoa APIã®è©³çްããããããObjective-Cã«ããã€ãã®ã³ãŒããæ®ãå¿ èŠããããŸãã ããšãã°ãC颿°ãSwiftãŸãã¯é¢æ°ãã€ã³ã¿ãŒã«æžã蟌ãããšã¯ã§ããªããããObjective-Cãã«ããŒã¡ãœãããªãã§CGPatternCreateãŸãã¯AudioServicesAddSystemSoundCompletionãåŒã³åºãããšã¯ã§ããŸããã AppearanceWhenContainedInïŒã¡ãœããã¯ãSwiftããåŒã³åºãããšãã§ããŸããã
äžæ¹ãSwiftã§ã¯äœ¿çšã§ããªãperformSelectorïŒã¡ãœããã®ããããã䜿çšããã³ãŒãã¯ãObjective-Cã«ããã«æ®ãããšãã§ããŸãããé ããæ©ããããããã®ã¡ãœãããSwiftã®ã³ãŒãã«çœ®ãæããããã®åé¿çãèãåºãå¿ èŠããããŸãã
Swiftã詊ããŠã¿ãŸããã
ããã§ãšãããããŸãïŒ ããã§ãã¢ããªã±ãŒã·ã§ã³ã®å šéšãŸãã¯äžéšãSwiftã§äœæãããŸããã ããããç§ã®ãã¹ãŠã®æšå¥šäºé ã«åŸãã°ããã®æ®µéã§ã¯ã¢ããªã±ãŒã·ã§ã³ã¯ãŸã ãéããããŸããã çµå±ãç§ãã¡ã¯äž»ã«ã³ãŒããå®è¡ããããšããŸããã ããã§ãã¹ãŠãæ©èœããããã«ãªã£ãã®ã§ãã³ãŒãèªäœã«æ»ã£ãŠã³ãŒããããæ £çšçã«ããããšãã§ããŸãã Objective-Cã§è€éã«ããŸãã¯åä»ã«è§£æ±ºãããããã€ãã®ã¿ã¹ã¯ã¯ãSwiftã§å®è£ ãããããã¯ãªãŒã³ã§åªãããã®ã§ããå ŽåããããŸãã
ãã¡ãããå¯èœãªéãããã€ãã£ãã®Swiftã¿ã€ãã«åãæ¿ããå¿ èŠããããŸãã NSStringãšNSMutableStringãNSArrayãšNSMutableArrayãããã³NSDictionaryãšNSMutableDictionaryãªã©ã®äžå€/å¯å€åã®ãã¢ã¯ããã€ãã£ãã®SwiftåïŒStringãArrayãDictionaryïŒã«çœ®ãæããããšãã§ããŸãã ãŸãããããã®ã¿ã€ãã«ä»å±ããŠããè€éãªããªãã¯ã®ããã€ãã¯ããå¿ èŠãªãããšãããããŸãã ãã®ãããé åã«ã¯ã€ã³ã¹ã¿ã³ã¹ã¡ãœããmapãfilterãreduceããããŸãã 圌ãã¯ããªãã«ãšã£ãŠéåžžã«åœ¹ç«ã€ã§ãããã
ããšãã°ãç§ã®ã¢ããªã±ãŒã·ã§ã³ã®1ã€ã«ãããŒã¿ãã»ã¯ã·ã§ã³ããšã«åå²ãããŠè¡šç€ºããã衚圢åŒã®ãã¥ãŒããããŸããã ã·ã¹ãã å ã¬ãã«ã§ã¯ããã®ããŒã¿ã¯é åã®é åã«èšé²ãããŸããåãµãé åã¯ãç¹å®ã®ã»ã¯ã·ã§ã³ã®è¡šåœ¢åŒã®è¡ã衚ãè¡ã§æ§æãããŸãã ããŒãã«ãæ€çŽ¢ã§ããŸããæ¬¡ã«ããŠãŒã¶ãŒãæ€çŽ¢ãã£ãŒã«ãã«å ¥åãããµãã¹ããªã³ã°ãå«ãŸãªãè¡ãæ€çŽ¢ããŠåé€ããŸãã ã»ã¯ã·ã§ã³èªäœã«ã¯è§ŠããŸããããè¡ãåé€ãããšãã«äžéšã®ã»ã¯ã·ã§ã³ãå®å šã«ç©ºã«ãªã£ãŠããå Žåã¯ããã®ã»ã¯ã·ã§ã³ã®é åå šäœãå®å šã«åé€ããŸãã ããã¯Objective-Cã§è¡ãããæ¹æ³ã§ãïŒsbã¯UISearchBarã§ãïŒïŒ
NSPredicate* p = [NSPredicate predicateWithBlock: ^BOOL(id obj, NSDictionary *d) { NSString* s = obj; NSStringCompareOptions options = NSCaseInsensitiveSearch; return ([s rangeOfString:sb.text options:options].location != NSNotFound); }]; NSMutableArray* filteredData = [NSMutableArray new]; for (NSArray* arr in self.sectionData) { NSArray* filteredArr = [arr filteredArrayUsingPredicate:p]; if (filteredArr.count) [filteredData addObject: filteredArr]; } self.filteredSectionData = filteredData;
æåã«ãNSPredicateãæ§æããŠé åããã£ã«ã¿ãŒããŸãã æ¬¡ã«ãé åã®é åãã«ãŒãåŠçããŠããã£ã«ã¿ãŒåŠçãããåãµãé åã®ã³ã³ããŒãã³ãã1ã€ãã€ç©ºã®NSMutableArrayã«ã忣ãããŸãã ããªãã¯ãã®ã€ãã£ãªã ã«ç²ŸéããŠãããšç¢ºä¿¡ããŠããŸãã Swiftã§ã¯ãNSPredicateããé åžãã®ã€ãã£ãªã ãã2ã€ã®äžéé åãå¿ èŠãããŸããïŒ ããããšãã£ã«ã¿ãŒãããããã¹ãŠã®äœæ¥ãåäžã®ã¹ããŒãã¡ã³ãã«åãŸããŸãã
self.filteredSectionData = self.sectionData.map { $0.filter { let options = NSStringCompareOptions.CaseInsensitiveSearch let found = $0.rangeOfString(sb.text, options: options) return (found != nil) } }.filter {$0.count > 0}
ãŸããã³ãŒããã¡ãã»ãŒãžè»¢éã«é¢é£ããObjective-Cãã€ããã¯ã¹ã«äŸåããŠããå Žæã§ã¯ãSwiftã§ã¯é¢æ°ãæåã®ã¯ã©ã¹ã®ãªããžã§ã¯ãã§ããããããã®ã¡ã«ããºã ããªããŠãå®è¡ã§ããŸãã
äŸãèããŠã¿ãŸãããã
èŸæžã«ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã¯ãã©ãã³èªã衚ãTermã¯ã©ã¹ããããŸãã å€ãã®ããããã£ã宣èšããŸãã åã«ãŒãã¯1ã€ã®çšèªã«å¯Ÿå¿ããåããããã£ã¯åå¥ã®ããã¹ããã£ãŒã«ãã«è¡šç€ºãããŸãã ãŠãŒã¶ãŒãç»é¢äžã®ããã¹ããã£ãŒã«ãã®ãããããã¯ãªãã¯ãããšãã€ã³ã¿ãŒãã§ã€ã¹ã®çŸåšã®çšèªãããŠãŒã¶ãŒãéžæããããããã£ã«ãã£ãŠåã®çšèªãšã¯ç°ãªã次ã®çšèªã«å€æŽããå¿ èŠããããŸãã ãããã£ãŠã3ã€ã®ããã¹ããã£ãŒã«ããã¹ãŠã®ã³ãŒãã¯åãã«ãªããŸãã å šäœã®éãã¯ãç»é¢ã«è¡šç€ºããæ¬¡ã®çšèªãéžæããããããã£ã«ãããŸãã
Objective-Cã§ã¯ããã®ãããªäžŠè¡æ§ã衚çŸããæãç°¡åãªæ¹æ³ã¯ãããŒãšå€ã®ãã¢ã䜿çšããããšã§ããïŒgã¯ã¯ãªãã¯ãžã§ã¹ãã£ã¬ã³ã°ãã€ã¶ãŒã§ãïŒïŒ
NSInteger tag = g.view.tag; // the tag tells us which text field was tapped NSString* key = nil; switch (tag) { case 1: key = @"lesson"; break; case 2: key = @"lessonSection"; break; case 3: key = @"lessonSectionPartFirstWord"; break; } // NSString* curValue = [[self currentCardController].term valueForKey: key];
ããã§ãSwiftã§ããŒãšå€ã®ãã¢ãåŒãç¶ã䜿çšã§ããŸãã ãã ããããã«ã¯ãTermã¯ã©ã¹ãNSObjectãç¶æ¿ããå¿ èŠããããObjective-C / Cocoaã®ãã€ããã¯ã¹-æååãããããã£åã«å€æãã-Swiftã®ç²Ÿç¥ãšã¯ç¡é¢ä¿ã§ãã Swiftã§ã¯ãå¿å颿°ã®åçŽãªé åã䜿çšããŠãã©ãã«ãã¡ãœããåŒã³åºãã«å€æããããšã«ãããåããã€ããã¯ã¹ãç°¡åã«å®è£ ã§ããããšãããããŸãã
let tag = g.view!.tag let arr : [(Term) -> String] = [ {$0.lesson}, {$0.lessonSection}, {$0.lessonSectionPartFirstWord} ] let curValue = arr[tag-1](self.currentCardController.term)
ãããã«
Swiftã®å€ãã®ããããã£ã¯ãæåããã³ãŒãã®ä¿¡é Œæ§ãé«ããããšãç®çãšããŠããŸãã
Objective-Cã§ããã°ã©ãã³ã°ããéã®ããããééãã¯ãã€ã³ã¹ã¿ã³ã¹ããããã£ã宣èšããããšã§ãããå ã®å€ã«èšå®ããã®ãå¿ããããšã§ãã nilã«ã¡ãã»ãŒãžãéä¿¡ããŠãäœãèµ·ãããªããããåé¡ã«æ°ä»ããã«é·æéäœæ¥ã§ããŸãã Swiftã§ã¯ããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ããããã£ã®åæåãå¿ èŠã§ãã æ¬¡ã«ãæªåé«ãã¹ããã³ã°ã¿ã€ãã³ã°Swiftã«ã€ããŠèª¬æããŸãã Objective-Cã§ã¯ãé åã®èŠçŽ ãæšæž¬ããããšã¯ããªãå¯èœã§ãããSwiftã§ã¯ãå³å¯ã«å®çŸ©ãããé åã®èŠçŽ ã¿ã€ããæå®ããå¿ èŠããããŸãã ãããã®Swiftã®ç¹æ§ãšæŠãããšããªãã§ãã ããã圌ãã«æè¬ããŠãã ããïŒ åã«Swiftã³ãŒããã³ã³ãã€ã«ããããã«ç®¡çããã ãã§ããã°ããã§ã«äœããåŠã³ãŸãã ãããããããªãã®ã³ãŒãã¯ããã®ãããªæ£ç¢ºããSwiftèšèªã®æ¬è³ªã«çµã¿èŸŒãŸããŠãããšããåçŽãªçç±ã§æ£ããã§ãããã
çåãããå Žåã¯ãSwiftã詊ããŠã¿ã䟡å€ããããŸããããheããªãã§ãã ããã ä»ãããSwiftãåŠã³ããã®èšèªã楜ããæã§ãã Xcode 6.3ã®ããŒã¿çã§ã¯ãSwift 1.2ããã§ã«å©çšå¯èœã§ããããã®èšèªãæ¢ã«ååãªæç床ã«éããŠããããšã確èªã§ããŸãã Swiftã¯è峿·±ãã·ã³ãã«ãªèšèªã§ãããObjective-Cã§äœæãããã¢ããªã±ãŒã·ã§ã³ããã°ãããã°ãã翻蚳ã§ããŸãã çµæã®ã³ãŒããã©ãã»ã©æç¢ºã§åçŽã«ãªãããé©ããããããŸããã