{"id":767,"date":"2020-01-15T13:25:00","date_gmt":"2020-01-15T04:25:00","guid":{"rendered":"https:\/\/www.elehobby.fun\/?p=767"},"modified":"2020-01-15T13:25:00","modified_gmt":"2020-01-15T04:25:00","slug":"swiftno4-beginning-ios13-app-development","status":"publish","type":"post","link":"https:\/\/www.7crystalsky.com\/?p=767","title":{"rendered":"Swift\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30ebNo.4 Beginning iOS13&#038;Swift App Development"},"content":{"rendered":"<div class=\"veu_autoEyeCatchBox\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"1024\" src=\"https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-496x1024.png\" class=\"attachment-large size-large wp-post-image\" alt=\"\" srcset=\"https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-496x1024.png 496w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-145x300.png 145w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-768x1586.png 768w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-744x1536.png 744w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-257x530.png 257w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-274x565.png 274w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-344x710.png 344w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10-351x725.png 351w, https:\/\/www.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10.png 770w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/div>\n<div class=\"separator\" style=\"clear: both; text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" border=\"0\" data-original-height=\"1590\" data-original-width=\"770\" height=\"320\" src=\"https:\/\/hobby.7crystalsky.com\/wp-content\/uploads\/2020\/01\/25E3258225B925E3258225AF25E3258325AA25E3258325BC25E3258325B325E3258225B725E3258325A725E32583258325E3258325882B2020-01-152B22.15.10.png\" width=\"154\"><\/div>\n<p>\u4eca\u56de\u306f\u3001 Chapter3 ToDoList\u3067\u3059\u3002<br \/>\ntableview\u3092\u4f7f\u3063\u305fToDo\u30a2\u30d7\u30ea\u3067\u3059\u3002<br \/>\n\u3053\u306e\u672c\u306e\u6587\u7ae0\u304b\u3089\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5165\u529b\u3057\u3066\u3044\u304f\u306e\u306f\u3001\u9aa8\u304c\u6298\u308c\u307e\u3059\u3002\u6ce8\u610f\u3059\u308b\u306e\u306f\u3001&#8221;{&#8221; \u3068 &#8220;}&#8221; \u3068\u304c<br \/>\n\u6b63\u3057\u304f\u76f8\u5bfe\u3057\u3066\u3044\u308b\u304b\u3001\u307e\u305f\u8aa4\u5165\u529b\u3057\u3066\u3044\u306a\u3044\u304b\u4f55\u5ea6\u3082\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\n\u6b21\u56de\u306f\u3001CoreData\u3092\u4f7f\u3063\u305fToDo\u30ea\u30b9\u30c8\u3067\u3059\u3002<\/p>\n<div class=\"p1\">\n\/\/<span class=\"Apple-converted-space\">&nbsp; <\/span>ViewController.swift<\/div>\n<div class=\"p1\">\n\/\/<span class=\"Apple-converted-space\">&nbsp; <\/span>TodoList<\/div>\n<div class=\"p1\"><\/div>\n<div class=\"p1\"><\/div>\n<div class=\"p3\">\n<span class=\"s1\">import<\/span> UIKit<\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p4\">\n<span class=\"s1\">class<\/span><span class=\"s2\"> <\/span><span class=\"s3\">ViewController<\/span><span class=\"s2\">: <\/span>UIViewController<span class=\"s2\">,<\/span>UITableViewDelegate<span class=\"s2\">,<\/span>UITableViewDataSource<span class=\"s2\"> {<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span><span class=\"s1\">func<\/span> <span class=\"s4\">tableView<\/span>(<span class=\"s1\">_<\/span> tableView: <span class=\"s5\">UITableView<\/span>, numberOfRowsInSection section: <span class=\"s5\">Int<\/span>) -&gt; <span class=\"s5\">Int<\/span> {<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s1\">return<\/span> <span class=\"s6\">Contents<\/span>.<span class=\"s7\">count<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span>}<\/div>\n<div class=\"p2\">\n<span class=\"Apple-converted-space\">&nbsp;&nbsp; &nbsp;<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span><span class=\"s1\">func<\/span> <span class=\"s4\">tableView<\/span>(<span class=\"s1\">_<\/span> tableView: <span class=\"s5\">UITableView<\/span>, cellForRowAt indexPath: <span class=\"s5\">IndexPath<\/span>) -&gt; <span class=\"s5\">UITableViewCell<\/span> {<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s1\">let<\/span> TodoCell : <span class=\"s5\">UITableViewCell<\/span> = tableView.<span class=\"s7\">dequeueReusableCell<\/span>(withIdentifier: <span class=\"s8\">&#8220;TodoCell&#8221;<\/span>, for: indexPath)<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span>TodoCell.<span class=\"s7\">textLabel<\/span>!.<span class=\"s7\">text<\/span> = <span class=\"s6\">Contents<\/span>[indexPath.<span class=\"s7\">row<\/span>]<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s1\">return<\/span> TodoCell<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span>}<\/div>\n<div class=\"p2\">\n<span class=\"Apple-converted-space\">&nbsp;&nbsp; &nbsp;<\/span><\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p5\">\n<span class=\"s2\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span><\/span>override<span class=\"s2\"> <\/span>func<span class=\"s2\"> <\/span><span class=\"s4\">viewDidLoad<\/span><span class=\"s2\">() {<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s1\">super<\/span>.<span class=\"s7\">viewDidLoad<\/span>()<\/div>\n<div class=\"p1\">\n<span class=\"s2\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><\/span>\/\/ Do any additional setup after loading the view.<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s1\">if<\/span> <span class=\"s5\">UserDefaults<\/span>.<span class=\"s7\">standard<\/span>.<span class=\"s7\">object<\/span>(forKey: <span class=\"s8\">&#8220;TodoList&#8221;<\/span>) <span class=\"s7\">!=<\/span> <span class=\"s1\">nil<\/span> {<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s6\">Contents<\/span> = <span class=\"s5\">UserDefaults<\/span>.<span class=\"s7\">standard<\/span>.<span class=\"s7\">object<\/span>(forKey: <span class=\"s8\">&#8220;TodoList&#8221;<\/span>) <span class=\"s1\">as<\/span>! [<span class=\"s5\">String<\/span>]<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span>}<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span>}<\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p6\">\n<span class=\"s2\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span><\/span><span class=\"s1\">override<\/span><span class=\"s2\"> <\/span><span class=\"s1\">func<\/span><span class=\"s2\"> <\/span>didReceiveMemoryWarning<span class=\"s2\">() {<\/span><\/div>\n<div class=\"p7\">\n<span class=\"s2\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><\/span><span class=\"s1\">super<\/span><span class=\"s2\">.<\/span>didReceiveMemoryWarning<span class=\"s2\">()<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span>}<\/div>\n<div class=\"p3\">\n}<\/div>\n<style type=\"text\/css\">\np.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #5d6c79; background-color: #ffffff}<br \/>\np.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; color: rgba(0, 0, 0, 0.85); background-color: #ffffff; min-height: 21.0px}<br \/>\np.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; color: rgba(0, 0, 0, 0.85); background-color: #ffffff}<br \/>\np.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3900a0; background-color: #ffffff}<br \/>\np.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #9b2393; background-color: #ffffff}<br \/>\np.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #326d74; background-color: #ffffff}<br \/>\nspan.s1 {color: #9b2393}<br \/>\nspan.s2 {color: #0f68a0}<br \/>\nspan.s3 {color: #3900a0}<br \/>\nspan.s4 {color: rgba(0, 0, 0, 0.85)}<br \/>\nspan.s5 {color: #0b4f79}<br \/>\nspan.s6 {color: #6c36a9}<br \/>\nspan.s7 {color: #c41a16}<br \/>\nspan.s8 {color: #326d74}<br \/>\n<\/style>\n<div class=\"p1\">\n\/\/<span class=\"Apple-converted-space\">&nbsp; <\/span>AddController.swift<\/div>\n<div class=\"p1\">\n\/\/<span class=\"Apple-converted-space\">&nbsp; <\/span>TodoList<\/div>\n<div class=\"p1\"><\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p3\">\n<span class=\"s1\">import<\/span> UIKit<\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p3\">\n<span class=\"s1\">var<\/span> <span class=\"s2\">Contents<\/span> = [<span class=\"s3\">String<\/span>]()<\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p4\">\n<span class=\"s1\">class<\/span><span class=\"s4\"> <\/span><span class=\"s5\">AddController<\/span><span class=\"s4\">: <\/span>UIViewController<span class=\"s4\"> {<\/span><\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p5\">\n<span class=\"s4\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span><\/span>@IBOutlet<span class=\"s4\"> <\/span>weak<span class=\"s4\"> <\/span>var<span class=\"s4\"> <\/span><span class=\"s2\">TodoTextField<\/span><span class=\"s4\">: <\/span><span class=\"s3\">UITextField<\/span><span class=\"s4\">!<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span><span class=\"s1\">@IBAction<\/span> <span class=\"s1\">func<\/span> <span class=\"s2\">TodoAddButton<\/span>(<span class=\"s1\">_<\/span> sender: <span class=\"s1\">Any<\/span>) {<\/div>\n<div class=\"p6\">\n<span class=\"s4\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><\/span>Contents<span class=\"s4\">.<\/span><span class=\"s6\">append<\/span><span class=\"s4\">(<\/span>TodoTextField<span class=\"s4\">.<\/span><span class=\"s6\">text<\/span><span class=\"s4\">!)<\/span><\/div>\n<div class=\"p2\">\n<span class=\"Apple-converted-space\">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<\/span><\/div>\n<div class=\"p6\">\n<span class=\"s4\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><\/span>TodoTextField<span class=\"s4\">.<\/span><span class=\"s6\">text<\/span><span class=\"s4\"> = <\/span><span class=\"s7\">&#8220;&#8221;<\/span><\/div>\n<div class=\"p2\">\n<span class=\"Apple-converted-space\">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<\/span><\/div>\n<div class=\"p6\">\n<span class=\"s4\"><span class=\"Apple-converted-space\">&nbsp;&nbsp; &nbsp; &nbsp; <\/span><\/span>Contents<span class=\"s4\">.<\/span><span class=\"s6\">append<\/span><span class=\"s4\">(<\/span>TodoTextField<span class=\"s4\">.<\/span><span class=\"s6\">text<\/span><span class=\"s4\">!)<\/span><\/div>\n<div class=\"p2\">\n<span class=\"Apple-converted-space\">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<\/span><\/div>\n<div class=\"p6\">\n<span class=\"s4\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><\/span>TodoTextField<span class=\"s4\">.<\/span><span class=\"s6\">text<\/span><span class=\"s4\"> = <\/span><span class=\"s7\">&#8220;&#8221;<\/span><\/div>\n<div class=\"p2\">\n<span class=\"Apple-converted-space\">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s3\">UserDefaults<\/span>.<span class=\"s6\">standard<\/span>.<span class=\"s6\">set<\/span>( <span class=\"s8\">Contents<\/span>, forKey: <span class=\"s7\">&#8220;TodoList&#8221;<\/span>)<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span>}<\/div>\n<div class=\"p5\">\n<span class=\"s4\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span><\/span>override<span class=\"s4\"> <\/span>func<span class=\"s4\"> <\/span><span class=\"s2\">viewDidLoad<\/span><span class=\"s4\">() {<\/span><\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><span class=\"s1\">super<\/span>.<span class=\"s6\">viewDidLoad<\/span>()<\/div>\n<div class=\"p2\"><\/div>\n<div class=\"p1\">\n<span class=\"s4\"><span class=\"Apple-converted-space\">&nbsp; &nbsp; &nbsp; &nbsp; <\/span><\/span>\/\/ Do any additional setup after loading the view.<\/div>\n<div class=\"p3\">\n<span class=\"Apple-converted-space\">&nbsp; &nbsp; <\/span>}<\/div>\n<div class=\"veu_socialSet veu_socialSet-position-after veu_contentAddSection\"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src=\"https:\/\/platform.twitter.com\/widgets.js\";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,\"script\",\"twitter-wjs\"));<\/script><ul><li class=\"sb_facebook sb_icon\"><a class=\"sb_icon_inner\" href=\"\/\/www.facebook.com\/sharer.php?src=bm&u=https%3A%2F%2Fwww.7crystalsky.com%2F%3Fp%3D767&amp;t=IT%E3%82%92%E6%A5%BD%E3%81%97%E3%82%80%E4%BC%9A\" target=\"_blank\" onclick=\"window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;\"><span class=\"vk_icon_w_r_sns_fb icon_sns\"><\/span><span class=\"sns_txt\">Facebook<\/span><span class=\"veu_count_sns_fb\"><\/span><\/a><\/li><li class=\"sb_x_twitter sb_icon\"><a class=\"sb_icon_inner\" href=\"\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fwww.7crystalsky.com%2F%3Fp%3D767&amp;text=IT%E3%82%92%E6%A5%BD%E3%81%97%E3%82%80%E4%BC%9A\" target=\"_blank\" ><span class=\"vk_icon_w_r_sns_x_twitter icon_sns\"><\/span><span class=\"sns_txt\">X<\/span><\/a><\/li><\/ul><\/div><!-- [ \/.socialSet ] -->","protected":false},"excerpt":{"rendered":"<p>\u4eca\u56de\u306f\u3001 Chapter3 ToDoList\u3067\u3059\u3002 tableview\u3092\u4f7f\u3063\u305fToDo\u30a2\u30d7\u30ea\u3067\u3059\u3002 \u3053\u306e\u672c\u306e\u6587\u7ae0\u304b\u3089\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5165\u529b\u3057\u3066\u3044\u304f\u306e\u306f\u3001\u9aa8\u304c\u6298\u308c\u307e\u3059\u3002\u6ce8\u610f\u3059\u308b\u306e\u306f\u3001&#8221;{&#8221; \u3068 &#038;#82 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":45,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"vkexunit_cta_each_option":"","footnotes":""},"categories":[49,22,50,32],"tags":[7,8],"class_list":["post-767","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mac","category-swift","category-xcode","category-32","tag-swift5ios13","tag-xcode11"],"_links":{"self":[{"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=\/wp\/v2\/posts\/767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=767"}],"version-history":[{"count":0,"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=\/wp\/v2\/posts\/767\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=\/wp\/v2\/media\/45"}],"wp:attachment":[{"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.7crystalsky.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}