
å€ãã®MVCã䜿çšããŠiOSã¢ããªã±ãŒã·ã§ã³ãèšèšããå ŽåãããMVCããå¥ã®MVCã«æ å ±ãååŸã«è»¢éããåé¡ã解決ããå¿ èŠããããŸãã 1ã€ã®MVCãã次ã®MVCãžã®ç§»è¡äžã®é æ¹åã®æ å ±ã®è»¢éã¯ãéåžžãé²è¡äžã®MVCã®ã¢ãã«ãã€ã³ã¹ããŒã«ããããšã§å®è¡ãããŸãããçŸåšã®MVCããåã®MVCãžã®æ å ±ã®ãéæ¹åãã®è»¢éã¯ãObjective-CãšSwiftã®äž¡æ¹ã§å§ä»»ã䜿çšããŠå®è¡ãããŸãã
ããã«ãããã©ã€ã³ãã€ã³ã¿ã©ã¯ã·ã§ã³ãã®ããã«ãViewãšControlleréã®åãMVCå ã§å§ä»»ã䜿çšãããŸãã
å®éããã¥ãŒã¯ããŸãã«ãäžè¬çãªæšæºåããããã«ãã£ã³ã°ãããã¯ã§ããããã¥ãŒã䜿çšããã¯ã©ã¹ãŸãã¯ã³ã³ãããŒã©ãŒã«ã€ããŠã¯äœãç¥ãããšãã§ããŸããã ãã¥ãŒã¯ç¬èªã®ããŒã¿ãææã§ãããããŒã¿ã¯Controllerã«å±ããŸãã å®éãããŒã¿ã¯ã¢ãã«å ã«ããå¯èœæ§ããããŸãããã³ã³ãããŒã©ãŒã¯ãããæäŸãã責任ããããŸãã 次ã«ãViewã¯Controllerãšã©ã®ããã«éä¿¡ã§ããŸããïŒ å§ä»»ã䜿çšããŸãã
ViewãšControllerã®çžäºäœçšã§å§ä»»ãå®è£ ããã«ã¯ã6ã€ã®æé ã«åŸãå¿ èŠããããŸãã
- å§ä»»ãããã³ã«ãäœæããŸãïŒ V iewãCã®ç®¡çè ã«æ³šæããŠã»ããããšãå®çŸ©ããŸãïŒ
- View weakã§ããªã²ãŒãããããã£ãäœæããŸãããã®ã¿ã€ãã¯å§ä»»ãããã³ã«ã«ãªããŸã
- V iewã®ããªã²ãŒãããããã£ã䜿çšããŠãããŒã¿ãååŸãããã V iewãææãŸãã¯å¶åŸ¡ã§ããªãããšãå®è¡ãããããŸãã
- 管çè ããããã³ã«ãå®è£ ããããšãçºè¡š
- ã³ã³ãããŒã©ãŒã¯ãäžèšã®æ®µèœïŒ2ã®ããããã£ãèšå®ããããšã«ããã self ïŒããèªäœïŒããã¥ãŒä»£ç人ãšããŠèšå®ããŸãã
- C ontrollerã§ãããã³ã«ãå®è£ ããŸã
å§ä»»ã¯åçŽãªããã»ã¹ã§ã¯ãªãããšãããããŸãã
SwiftãšObjective-Cã®äž¡æ¹ã§ãã¯ããŒãžã£ãŒïŒãããã¯ïŒã䜿çšããŠå§ä»»ããã»ã¹ã眮ãæããããšãã§ããå éšäœ¿çšã®ããã«åšå²ã®ã³ã³ããã¹ãããå€æ°ããã£ããã£ããèœåãèæ ®ããŸãã ãã ãã Swiftã§ã¯ããã®ã¢ã€ãã¢ã®å®è£ ã¯å€§å¹ ã«ç°¡çŽ åãããããç°¡æœã«èŠããŸããããã¯ã Swiftã®é¢æ°ïŒã¯ããŒãžã£ãŒïŒãããã¡ãŒã¹ãã¯ã©ã¹ã®åžæ°ãã§ããããã§ããã€ãŸããå€æ°ã宣èšããé¢æ°ã®ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãããšãã§ããŸã Swiftã®ã³ãŒãã®åçŽããšçµ¶å¯Ÿçãªæå¿«ãã«ããã å§ä»»ã䜿çšããã«2ã€ã®MVCã®çžäºäœçšãŸãã¯ControllerãšViewã®çžäºäœçšã®ã³ã³ããã¹ãããã£ããã£ããã¯ããŒãžã£ãŒãããåºã䜿çšããããšãã§ããŸãã
2015幎ã®ã¹ã¿ã³ãã©ãŒãã³ãŒã¹ãDeveloping iOS 8 Apps with Swiftãããåã£ã2ã€ã®äŸã§ãã¯ããŒãžã£ãŒã«ããã³ã³ããã¹ããã£ããã£ã®äœ¿çšã瀺ããããšæããŸã ïŒãã·ã¢èªã®åçç©ã¯ããµã€ããiOS + Swift + Objective-C Application Development ãã«ãããŸã ïŒã
1ã€ã®äŸã¯ã1ã€ã®MVCãšä»ã®2ã€ã®ç°ãªãMVCå ã®ViewãšControllerã®çžäºäœçšã«é¢é£ããŸãã ã©ã¡ãã®å Žåãã ã¯ããŒãžã£ãŒã䜿çšããŠã³ã³ããã¹ãããã£ããã£ãããš ã å§ä»»ã ãè£å©ãããã³ã«ãšããªã²ãŒããå¿ èŠãšããªããããã·ã³ãã«ã§ãšã¬ã¬ã³ããªã³ãŒãã«çœ®ãæããããšãã§ããŸãã
ã¹ã¿ã³ãã©ãŒãã³ãŒã¹ã®èª²é¡ã§ã¯ãã°ã©ãé»åã®éçºã

iPadã§ã¯ã2ã€ã®éšåã§æ§æãããŠããããã«èŠããŸãïŒå·ŠåŽã«ã¯RPN ïŒ éããŒã©ã³ãèšæ³ ïŒèšç®æ©ããããèšç®ãå®è¡ã§ããã ãã§ãªãã Må€æ°ã䜿çšããŠé¢æ°ã®åŒãèšå®ãã ã°ã©ããã¿ã³ãã¯ãªãã¯ãããšå³åŽã«ã°ã©ãã£ã«ã«ã«è¡šç€ºãããŸãç»é¢ã®äžéšã ãããã®åŒã¯ãã ãæ°ã«å ¥ãã«è¿œå ããã¿ã³ãæŒããã ãæ°ã«å ¥ãã衚瀺 ããã¿ã³ã䜿çšããŠèšæ¶ãããæ©èœã®ãªã¹ãå šäœãåçããããšã«ãããæ©èœã®ãªã¹ãã«èšæ¶ã§ããŸãã ãªã¹ãã§ã¯ãä»»æã®é¢æ°ïŒããããŒå ã®å³ïŒãéžæã§ããã°ã©ãã£ãã¯ããŒãã«çµã¿èŸŒãŸããŸãã ããã€ãã®é¢æ°ã®ã»ãããããããã RPNèšç®æ©ã«é Œããã«ã°ã©ãã£ã«ã«ã«ããããã§ããŸãã
ããã«ãå³ããå·Šãžã®ã¹ã¯ã€ããžã§ã¹ãã£ïŒã¹ã¯ã€ãïŒã䜿çšããŠããªã¹ãããäžèŠãªæ©èœãåé€ã§ããŸãã

RPNèšç®æ©ã®å®è£ ã«ã€ããŠã¯è©³ãã説æããŸãããRPNèšç®æ©ã®æ§ç¯ããã»ã¹ã¯ããµã€ããiOS + Swift + Objective-Cã¢ããªã±ãŒã·ã§ã³éçº ãã§èª¬æãããŠããŸãã ã°ã©ãã£ã«ã«ãªéšåãç¹ã«ãã«ã¹ã¿ã UIViewããã®Cãªã³ãããŒã©ãŒããy = fïŒxïŒåº§æšã«é¢ããæ å ±ãåãåãæ¹æ³ãããã³ããããªãŒããŒãŠã£ã³ããŠã«è¡šç€ºãããæšæºã®ããŒãã«ãã¥ãŒãå¥ã®MVCã®Cãªã³ãããŒã©ãŒã«ç®çã®ã°ã©ããæç»ããŠåæãç¶æãããæ¹æ³ã«é¢å¿ããããŸãé¢æ°ã®ãªã¹ãã
Graphing Calculatorã¢ããªã±ãŒã·ã§ã³ã«åå ããŠãããã¹ãŠã®MVCã以äžã«ç€ºããŸãã

Split View Controllerã䜿çšãããŠããããšãããããŸãã ãã¹ã¿ãŒåŽã®åœ¹å²ã¯ãã¿ã€ãy = fïŒxïŒã®æ©èœäŸåé¢ä¿ãçæã§ããèšç®æ©ã«ãã£ãŠè¡ããã 詳现ã®åœ¹å²ã¯ãäŸåé¢ä¿y = fïŒxïŒãè¡šãã°ã©ãã«ãã£ãŠè¡ãããŸãã Split View Controllerã®è©³çŽ°åŽãã€ãŸããåãMVCå ã§ViewãšControllerã®çžäºäœçšãè¡ãMVCãChartããšã MVCãChartããšã®çžäºäœçšãè¡ãMVCã List of Functionsãã«æ³šç®ããŸãã
1ã€ã®MVCã§ã®ãã¥ãŒãšã³ã³ãããŒã©ãŒã®çžäºäœçšã§ãéããŠã³ã³ããã¹ãããã£ããã£ããŸãã
FavoritesGraphViewControllerã¯ã©ã¹ã«ãã£ãŠå¶åŸ¡ãããMVCâ Graph âãèŠãŠã¿ãŸãããã

ããèŠããšã FavoritesGraphViewControllerã¯ã©ã¹ã¯åºæ¬ã¯ã©ã¹GraphViewControllerãç¶æ¿ããŠããã favoriteProgramså€æ°ïŒ RPNèšç®æ©ã®ããã°ã©ã ã®é åïŒã§è¡šãããé¢æ°ã®ãªã¹ãã«é¢é£ãããã®ã ããå«ãŸããŠããããšãããããŸãã ãã¹ãŠã®ã°ã©ãã£ãã¯ããŒãã¯ãåºæ¬ã¯ã©ã¹GraphViewControllerã«é ãããŠããŸãã èšäºã§æèµ·ãããåé¡ã®èŠ³ç¹ãããåºæ¬ã¯ã©ã¹GraphViewControllerã«èå³ãããã次ã®ã»ã¯ã·ã§ã³ã§FavoritesGraphViewControllerã¯ã©ã¹ã«æ»ããŸãã ããã¯ãããäžè¬åãããã¯ã©ã¹ããã®ãŸãŸæ®ãããã¹ãŠã®ãç¹å®ã®ãããã®ãµãã¯ã©ã¹ã«å°å ¥ãããå Žåã®iOSããã°ã©ãã³ã°ã®äžè¬çãªããªãã¯ã§ãã ãã®ã»ã¯ã·ã§ã³ã§ã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®ã¬ã€ã¢ãŠããããåçŽåããã圢åŒã§ãããšæ³å®ã§ããŸãã

ã€ãŸãã ãGraphãMVC㯠GraphViewControllerã¯ã©ã¹ã«ãã£ãŠå¶åŸ¡ãããŸãã ãã®ã¯ã©ã¹ã«ã¯ãããããçšã®èšç®æ©ã®ããã°ã©ã ããã°ã©ã RPNã転éãããŸãïŒãããã MVCãã¢ãã«ã§ãïŒã

ãã®MVCã®ãã¥ãŒã¯ã GraphViewã¯ã©ã¹ã«ãã£ãŠå¶åŸ¡ãããéåžžã®UIViewã§ãã

ç§ãã¡ã®ã¿ã¹ã¯ã¯ãäŸåé¢ä¿y = fïŒxïŒãæ§ç¯ã§ãã絶察çã«äžè¬åãããGraphViewã¯ã©ã¹ãäœæããããšã§ãã ãã®ã¯ã©ã¹ã¯ãèšç®æ©ã«ã€ããŠäœãç¥ããªãã¯ãã§ããäžè¬çãªäŸåé¢ä¿y = fïŒxïŒã®åœ¢åŒã§ã°ã©ãã«é¢ããæ å ±ãåãåããããŒã¿ãä¿åããŸããã äžæ¹ã GraphViewControllerã¯ã©ã¹ã§è¡šãããã³ã³ãããŒã©ãŒã«ã¯ãã°ã©ãy = fïŒxïŒã«é¢ããæ å ±ãå«ãŸããŠããŸãããæ瀺çã«ã§ã¯ãªãã è³ã® RPNèšç®æ©ã®ã€ã³ã¹ã¿ã³ã¹ã«ãã£ãŠè§£éã§ããããã°ã©ã ããã°ã©ã ãšããŠå«ãŸããŠããŸãã

xã®ä»»æã®å€ã䜿çšãããšãã€ã³ã¹ããŒã«ãããŠããããã°ã©ã ããã°ã©ã ã® è³é»åã䜿çšããŠyãèšç®ã§ããŸãã

ãããã®2ã€ã®ã¯ã©ã¹-GraphViewãšGraphViewControllerãæ¥ç¶ããæ¹æ³ããããã®1ã€ãä»ã®ã¯ã©ã¹ãå¿ èŠãšããæ å ±ãæã£ãŠããå ŽåïŒ Objective-CãšSwiftã®äž¡æ¹ã§ãããè¡ãåŸæ¥ã®æ®éçãªæ¹æ³ã¯ã å§ä»»ã«ãããã®ã§ãã Swiftã§ã®ãã®ç¹å®ã®äŸã®ãã®æ¹æ³ã«ã€ããŠã¯ã ãã¿ã¹ã¯3.ãœãªã¥ãŒã·ã§ã³å¿ é ã¿ã¹ã¯ãã®æçš¿ã§èª¬æãããŠããŸãã
å¥ã®ãã¹ãéžæããŸãã-2ã€ã®ã¯ã©ã¹ããã®å Žåã¯GraphViewãšGraphViewControllerã®çžäºäœçšã®ããã«å€éšã³ã³ããã¹ãããå€æ°ããã£ããã£ããã¯ããŒãžã£ãŒã䜿çšããŸãã
GrapherViewControllerã§èšå®ã§ããããã«ã yForXã¯ããŒãžã£ãŒå€æ°ããããªãã¯ïŒãã©ã€ããŒãã§ã¯ãªãïŒãšããŠGrapherViewã¯ã©ã¹ã«è¿œå ããŸãã

ãªãã·ã§ã³å€æ°yForXã䜿çšããŠã GrapViewã¯ã©ã¹ã«ã°ã©ããæç»ããŸãã

é¢æ°èªäœãOptionalã®å Žåã«Optionalsãã§ãŒã³ãæå®ããã«ã¯ãé¢æ°ãæ¬åŒ§ã§å²ã¿ã笊å·ãä»ããå¿ èŠããããŸããïŒ è³ªåããŠããã圌女ã®è°è«ãæžããŸãã
Observerã®GraphViewControllerã§didSet {} GraphViewã®ããããã£ïŒ @IBOutletã§ããyForXã¯ããŒãžã£ãŒãèšå®ããŠã ã°ã©ãäœæã«å¿ èŠãªããã°ã©ã ããã°ã©ã ãæ¢ã«ã€ã³ã¹ããŒã«ãããŠããself.brainèšç®æ©ã®ã€ã³ã¹ã¿ã³ã¹ãžã®ãªã³ã¯ããã£ããã£ããŸãã yForXã䜿çšãããã³ã« ãåãããã£ããã£ãŒããããèšç®æ©ã䜿çšããŸããããã¯å¿ èŠãªãã®ã§ãã

ããã ãã§ã 代ç人ããããã³ã«ããããã³ã«ã®ç¢ºèªã¯ãããŸããã å¯äžã®ããšã¯ãããããã æªææã®èªå·± ããªã¹ãã«è¿œå ããŠãã¡ã¢ãªå ã®åŸªç°åç §ãé€å€ããããšã§ãïŒããã¯ãã³ãŒã¹ãDeveloping iOS 8 Apps with Swiftã㮠第9ç« ã§èª¬æãããŠããŸãïŒã
Githubã³ãŒãã
2ã€ã®MVCã®çžäºäœçšã§ã³ã³ããã¹ããéããŸãã
Graphing Calculatorã®ãªãã·ã§ã³ã«æ»ããŸããããããã¯ãã°ã©ãã®æ©èœãç¹å¥ãªãªã¹ãã«ä¿åãããŠãŒã¶ãŒã«ã°ã©ãã£ã«ã«ãªè¡šç€ºã®ããã«ãªã¹ãããæ©èœãéžæããããã«ä¿ãããšãã§ããŸã

åè¿°ããããã«ããã®ããã«ãGraphicsControllerã¯ã©ã¹ã®ãµãã¯ã©ã¹ãäœæããå¿ èŠããããŸããããããFavoritesGraphViewControllerãšåŒã³ãŸãã ãããŠä»ã MVCãã°ã©ããã¯FavoritesGraphViewControllerã¯ã©ã¹ã«ãã£ãŠå¶åŸ¡ãããŠããŸãã
ãã®æ°ããã¯ã©ã¹FavoritesGraphViewControllerã§ã¯ ãããã°ã©ã ã®ãªã¹ãã«ãèšç®å€æ°favoriteProgramsãé 眮ããŸããããã¯ãRPNèšç®æ©ã®ããã°ã©ã ã®é åã§ããã NSUserDefaultsæ°žç¶ã¹ãã¬ãŒãžã«æ¥ç¶ãããŠããŸãã ããã°ã©ã ã®ãªã¹ãã¯ãã ãæ°ã«å ¥ãã«è¿œå ããã¿ã³ã䜿çšããŠè£å ãããŸãã çŸåšã®ããã°ã©ã ããã°ã©ã ã favoriteProgramsé åã«è¿œå ãããŸãã

ããã°ã©ã ã®ãªã¹ãã衚瀺ããããã«ãå¥ã®MVCã䜿çšãããŸã-MVCãé¢æ°ã®ãªã¹ãã ã ããã¯ã FavoriteTableViewControllerã¯ã©ã¹ã«ãã£ãŠå¶åŸ¡ãããéåžžã®Table View Controllerã§ãã MVCãé¢æ°ã®ãªã¹ã ããžã®ã移åãã¯ã MVCãã°ã©ããã«ããã Show Favorites ããã¿ã³ãæŒãããšã§å®è¡ãããŸããã»ã°ãšã¿ã€ããPresent as Popoverãã䜿çšããŸãã
FavoriteTableViewControllerã¯ã©ã¹ã®ã¢ãã«ã¯ãRPNèšç®æ©ã®ããã°ã©ã ã®é åã§ãããããŒãã«ã«è¡šç€ºããå¿ èŠããããŸãã

Table View DataSourceã®ã¡ãœãããå®è¡ããŸã

ãŸããMVCã¯MVC "List of Functions"ãšåŒã°ãããããããŒãã«è¡ã«RPNèšç®æ©çšã®ããã°ã©ã ã§ã¯ãªãã "æåäžçœ®"圢åŒã§ã®èª¬æã衚瀺ããå¿ èŠããããšããäºå®ã«çŽé¢ããŠããŸãã ãããè¡ãã«ã¯ã MVC "Chart"ã«ããèšç®æ©ãèŠæ±ããå¿ èŠããããŸãã
descriptionTableã¯ããŒãžã£ãŒå€æ°ãFavoriteTableViewControllerã¯ã©ã¹ã«è¿œå ããŸãããã®ã¯ã©ã¹ã®ã¿ã€ãã¯ãå ¥åã«2ã€ã®ãã©ã¡ãŒã¿ãŒãæã€é¢æ°ã§ãã
- FavoriteTableViewController-ãã®ã¡ãœãããèŠæ±ããã¯ã©ã¹
- index - favoriteProgramsããã°ã©ã ãªã¹ãå ã®ããã°ã©ã ã®ã€ã³ããã¯ã¹ãäžçœ®è¡šèšã®èª¬æãå¿ èŠ
åºåã¯ã説æä»ãã®Optiona lè¡ã§ãã

prepareForSegueã¡ãœããã§MVCãé¢æ°ã®ãªã¹ã ããžã®ã移åããæºåããããã»ã¹ã§ããã®ã¯ããŒãžã£ãŒãMVCãGraphãã«ã€ã³ã¹ããŒã«ããŸãã

descriptionProgramãéãããš ãèšç®ããã°ã©ã ãšMVC "Graph"ã®ããã°ã©ã ã®é åããã£ããã£ããããã¹ãŠã®åŒã³åºãã§äœ¿çšãããŸãã
ããŒãã«ãšFavoriteTableViewControllerã¯ã©ã¹ã«æ»ããŸãã ããŒãã«ã§ç¹å®ã®é¢æ°ãéžæããããšãã«å¯Ÿå¿ããã°ã©ããæç»ãããããã«ããé¢æ°ã®ãªã¹ãã®è¡ã®åé€ãNSUserDefaultsæ°žç¶ã¹ãã¬ãŒãžã«ããããã°ã©ã ã®é åãšåæãããå¿ èŠããããŸãã ããã«ã¯ãã¹ãŠã MVC Chartãšã®å¯Ÿè©±ãå¿ èŠã§ãã ãããã£ãŠã2ã€ã®didSelectããã³didDeleteã¯ããŒãžã£ãŒå€æ°ãFavoriteTableViewControllerã¯ã©ã¹ã«è¿œå ããŸãããã®ã¿ã€ãã¯ãåã®descriptionProgramã¯ããŒãžã£ãŒå€æ°ã®ããã«ãå ¥åã«2ã€ã®ãã©ã¡ãŒã¿ãŒãæã€åãã·ã°ããã£ãæã€é¢æ°ã§ãã
- FavoriteTableViewController-ãã®ã¡ãœãããèŠæ±ããã¯ã©ã¹
- index - favoriteProgramsããã°ã©ã ãªã¹ãå ã®ããã°ã©ã ã®ã€ã³ããã¯ã¹ãäžçœ®è¡šèšã®èª¬æãå¿ èŠ
ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ã¯ããŒãžã£å ã§å®è¡ãããããããããã®é¢æ°ã¯äœãè¿ããŸããã

ããªã²ãŒãã¡ãœããdidSelectRowAtIndexPathããã³commitEditingStyle ...ãšãæ°ãã宣èšãããã¯ããŒãžã£ãŒå€æ°ã䜿çšããŠãã¿ã¹ã¯ãå®äºããŸãã

prepareForSegueã¡ãœããã§MVCãé¢æ°ã®ãªã¹ããã«ç§»åããæºåãšããŠãMVCãScheduleãã«didSelectããã³didDeleteã·ã§ãŒãã«ãããã€ã³ã¹ããŒã«ããŸã ã

didSelectã¯ããŒãžã£ã¯ ãå€éšããèšç®æ©ã«ã€ã³ã¹ããŒã«ãããŠããMVC Chartã«ããã°ã©ã ããã°ã©ã ããã£ããã£ããåã€ã³ã¹ããŒã«ãããšã MVC Chartãå¿ èŠãªãã£ãŒããåæç»ããŸãã åãã¯ããŒãžã£ãŒã§ãç»é¢ããé¢æ°ã®ãªã¹ããå«ãPopoverãŠã£ã³ããŠãåé€ãããïŒè¡controller.dismissControlerAnimated ...ããã³ã¡ã³ããåé€ããã ãïŒããŠãŒã¶ãŒãåŸã§éžæã§ããããã«æ®ãããšãã§ããŸãã
didDeleteã¯ããŒãžã£ã¯ ã NSUserDefaultsæ°žç¶ã¹ãã¬ãŒãžã«é¢é£ä»ããããŠããfavoriteProgramsããã°ã©ã é åãååŸãã察å¿ããããã°ã©ã ãåé€ããŸãã
ããã§ãã¯ããŒãžã£ãŒã䜿çšããŠMVCã®ã é¢æ°ã®ãªã¹ã ããå察æ¹åã«åŒã³åºããMVCã®ãã°ã©ãããšçžäºäœçšããæ¹æ³ã調ã¹ãŸããã
次ã«ãçŽæ¥çãªçžäºäœçšã«ã€ããŠèããŸãã MVCçšã®ããã°ã©ã ã¢ãã«ãæ©èœãªã¹ããã¯ã©ãã«ã€ã³ã¹ããŒã«ãããŸããïŒ åãprepareForSegueã¡ãœããã§MVCãé¢æ°ã®ãªã¹ãããžã®ç§»è¡ãæºåããéçšã§ã MVCãGraphãã«ã€ã³ã¹ããŒã«ããŸã

ãããã£ãŠãã¯ããŒãžã£ãŒã䜿çšããŠç°ãªãMVCéã§æ å ±ã亀æããã¹ããŒã ã¯éåžžã«ç°¡åã§ãã
次ã®3ã€ã®ã¹ãããã§æ§æãããŸãã
- 察話ãå¿ èŠãšããMVCã§ã ãããªãã¯å€æ°ãäœæããŸã-ã¯ããŒãžã£ãŒ
- åãMVCã§äœ¿çšãã
- å¥ã®MVCã§ã¯ã didSet {}ããããã£ãªãã¶ãŒããŒã prepareForSegueã¡ãœããããŸãã¯ä»ã®å Žæã§ãã®ã¯ããŒãžã£ãŒãèšå®ããã¯ããŒãžã£ãŒãå¿ èŠãªå€æ°ãšå®æ°ãããã£ããã£ãããããã«ããŸãã
ããã ãã§ã
ãµããŒãèŠçŽ ãªã-ãããã³ã«ãšããªã²ãŒãã
Githubã³ãŒãã
iPhoneã§ã¯ãSpring View Controllerã§ã¯ãªãNavigation Controllerã§ãããããGraphing Calculatorã䜿çšãããšããã«å¹æçã§ããç»é¢äžã®æ©èœã®ãªã¹ãã¯ãã®ãŸãŸã§ãã

ãããã«
é æ¹åãšéæ¹åã®äž¡æ¹ã§ãããMVCããå¥ã®MVCãžã®æ å ±ã®è»¢éã調ã¹ãŸããã 1ã€ã®MVCãã次ã®MVCãžã®ç§»è¡äžã®é æ¹åã®æ å ±è»¢éã¯ãç®çã®MVCã®ã¢ãã«ãã€ã³ã¹ããŒã«ããããšã«ãã£ãŠå®è¡ãããŸãã çŸåšã®MVCãã以åã®MVCã«æ å ±ããéæ¹åãã«è»¢éããããšã¯ãã¯ããŒãžã£ãŒã䜿çšããŠSwiftã«å®è£ ããã®ã«éåžžã«äŸ¿å©ã§ç°¡åã§ãã
ãã®ææ³ã¯ãåãMVCå ã§ViewãšControlleréã®ããã©ã€ã³ãã€ã³ã¿ã©ã¯ã·ã§ã³ãã«ã䜿çšã§ããŸãã ããããã¹ãŠã®æ©èœã瀺ãã°ã©ãé»åã®ãã¢ã衚瀺ãããŸãã
ã¹ã¿ã³ãã©ãŒã倧åŠã®ã³ãŒã¹ã§ã°ã©ãé»åãéçºããããã®åææ¡ä»¶ã¯ã RPNé»åã®ååšã«ã€ããŠäœãç¥ããã«ãã§ããã ãäžè¬çãªè¡šåœ¢åŒã§ããããããã³ãªã¹ãé¢æ°ããµããŒãããã¯ã©ã¹ã®äœæã§ãããšããäºå®ã«æ³šç®ããŸãã ãããã£ãŠãæ瀺ãããŠãããã¹ãŠã®äŸã®ã¯ããŒãžã£ãŒå€æ°ã¯ãã¹ãŠã察å¿ããGraphViewã¯ã©ã¹ãšFavoriteTableViewControllerã¯ã©ã¹ã®ã»ãã³ãã£ã¯ã¹ã®ã¿ã«é¢é£ä»ããããéåžžã«æ±çšçãªåœ¢åŒãæã£ãŠããŸãã
åç §è³æ
2015ã¹ã¿ã³ãã©ãŒãã³ãŒã¹ãSwiftã䜿çšããiOS 8ã¢ããªã®éçºã
ãã·ã¢ã®ç¡èš±å¯ã®è¬çŸ©ããŒããšèª²é¡ã¯ãiOS + Swift + Objective-C Application Development ããšãããµã€ãã«ãããŸã
ã¿ã¹ã¯3ã®è±èªã®ããã¹ãã¯ãiTunesã®ãiOS 8ã¢ããªã®éçºïŒããã°ã©ãã³ã°ïŒãããžã§ã¯ã3ãã§å ¥æã§ããŸãã
ãã·ã¢èªã®ã¿ã¹ã¯3ã®ããã¹ãã¯ã ãã¿ã¹ã¯3 iOS 8.pdfãã§å ¥æã§ããŸãã
ã¿ã¹ã¯3ãã°ã©ãé»åãã®ãœãªã¥ãŒã·ã§ã³ããŒãããäœæã
ã¿ã¹ã¯3 cs193p Winter 2015 Graphic Calculatorã ãœãªã¥ãŒã·ã§ã³-å¿ é ãã€ã³ã
ã¿ã¹ã¯3 cs193p Winter 2015 Graphic Calculatorã 決å®-è¿œå ãã€ã³ã1ã2ã3
ã¿ã¹ã¯3.決å®-è¿œå ã®ãã€ã³ã4ã5ãããã³6ãçµäºã
Githubã³ãŒãã
ã泚æ ã°ã©ãèšç®æ©ã§å®éšããŠããå Žåãããã¯RPNèšç®æ©ã§ããããããªãã©ã³ããæåã«å ¥åããã次ã«æäœãå ¥åãããããšã«æ³šæããŠãã ããã sinïŒ1 / MïŒé¢æ°ãååŸããã«ã¯ãé»åã«æ¬¡ã®æååãå ¥åããå¿ èŠããããŸã
1âµM ÷ sin ãã°ã©ãããã¿ã³ã¯sinãäžããŸãïŒ1 / MïŒ
M cos M Ãã°ã©ããã¿ã³ã¯ã cosïŒMïŒ* M
Mâµ1âµM sin + à ãã°ã©ãããã¿ã³ã¯M *ïŒ1 + sinïŒMïŒïŒ