[{"data":1,"prerenderedAt":844},["ShallowReactive",2],{"\u002Fother_memorandum\u002Fios":3},{"id":4,"title":5,"body":6,"date":835,"description":836,"draft":837,"extension":838,"meta":839,"navigation":491,"path":840,"seo":841,"stem":842,"__hash__":843},"blog\u002F900.other_memorandum\u002F10.ios.md","iOSについて",{"type":7,"value":8,"toc":798},"minimark",[9,14,35,64,71,75,88,92,99,125,129,136,219,222,231,239,250,265,268,277,281,288,327,334,344,351,361,364,380,383,401,429,451,454,463,466,477,512,518,521,530,538,541,550,565,568,574,603,606,622,626,664,671,738,749,752,768,772,776,779,783,791,794],[10,11,13],"h2",{"id":12},"uilabelの高さを可変にする","UILabelの高さを可変にする",[15,16,17,18,22,23,26,27,30,31,34],"p",{},"Androidでいうところの ",[19,20,21],"code",{},"layout_height=\"wrap_content\""," 。\n実装はとても簡単で、 ",[19,24,25],{},"numberOfLines"," に ",[19,28,29],{},"0"," を設定し、 ",[19,32,33],{},"sizeToFit()"," をコールする。",[36,37,42],"pre",{"className":38,"code":39,"language":40,"meta":41,"style":41},"language-swift shiki shiki-themes github-light","label.numberOfLines = 0\nlabel.text = \"ここにはとても長いテキストが入ります。ここにはとても長いテキストが入ります。ここにはとても長いテキストが入ります。\"\nlabel.sizeToFit()\n\n","swift","",[19,43,44,52,58],{"__ignoreMap":41},[45,46,49],"span",{"class":47,"line":48},"line",1,[45,50,51],{},"label.numberOfLines = 0\n",[45,53,55],{"class":47,"line":54},2,[45,56,57],{},"label.text = \"ここにはとても長いテキストが入ります。ここにはとても長いテキストが入ります。ここにはとても長いテキストが入ります。\"\n",[45,59,61],{"class":47,"line":60},3,[45,62,63],{},"label.sizeToFit()\n",[15,65,66,67,70],{},"これだけで、 ",[19,68,69],{},"UILabel"," の高さをテキスト量に応じて可変にすることができる。",[72,73,74],"h3",{"id":74},"参考",[76,77,78],"ul",{},[79,80,81],"li",{},[82,83,87],"a",{"href":84,"rel":85},"https:\u002F\u002Fweblabo.oscasierra.net\u002Fswift-uilabel-lines-1\u002F",[86],"nofollow","Swift – UILabelの行数(高さ)を可変にする方法 - WebLabo",[10,89,91],{"id":90},"引数付きstringイニシャライザ","引数付きStringイニシャライザ",[15,93,94,95,98],{},"Swiftで文字列内に変数を埋め込む際、フォーマットを指定して整形したい場合は ",[19,96,97],{},"String(format:)"," を使用する。",[36,100,102],{"className":38,"code":101,"language":40,"meta":41,"style":41},"let month = \"12\"\nlet day = \"31\"\nlet text = String(format: \"%@月%@日\", month, day)\nprint(text) \u002F\u002F 出力: 12月31日\n\n",[19,103,104,109,114,119],{"__ignoreMap":41},[45,105,106],{"class":47,"line":48},[45,107,108],{},"let month = \"12\"\n",[45,110,111],{"class":47,"line":54},[45,112,113],{},"let day = \"31\"\n",[45,115,116],{"class":47,"line":60},[45,117,118],{},"let text = String(format: \"%@月%@日\", month, day)\n",[45,120,122],{"class":47,"line":121},4,[45,123,124],{},"print(text) \u002F\u002F 出力: 12月31日\n",[10,126,128],{"id":127},"可変長引数variadic-parameters-の実装方法","可変長引数（Variadic Parameters） の実装方法",[15,130,131,132,135],{},"Javaと似ており、型名の末尾に ",[19,133,134],{},"..."," を追加するだけで可変長引数を定義することができる。\n関数内部で参照する際は、通常の配列（Array）と全く同じように扱うことが可能。",[36,137,139],{"className":38,"code":138,"language":40,"meta":41,"style":41},"func print(texts: String...) {\n    \u002F\u002F 配列のように要素数を参照できる\n    if texts.count == 0 {\n       return\n    }\n    \n    \u002F\u002F 配列のようにインデックスで要素を参照できる\n    print(\"first: \\(texts[0])\")\n    \n    \u002F\u002F for-in文によるループ処理も可能\n    for text in texts {\n      print(\"element: \\(text)\")\n    }\n}\n\n",[19,140,141,146,151,156,161,167,173,179,185,190,196,202,208,213],{"__ignoreMap":41},[45,142,143],{"class":47,"line":48},[45,144,145],{},"func print(texts: String...) {\n",[45,147,148],{"class":47,"line":54},[45,149,150],{},"    \u002F\u002F 配列のように要素数を参照できる\n",[45,152,153],{"class":47,"line":60},[45,154,155],{},"    if texts.count == 0 {\n",[45,157,158],{"class":47,"line":121},[45,159,160],{},"       return\n",[45,162,164],{"class":47,"line":163},5,[45,165,166],{},"    }\n",[45,168,170],{"class":47,"line":169},6,[45,171,172],{},"    \n",[45,174,176],{"class":47,"line":175},7,[45,177,178],{},"    \u002F\u002F 配列のようにインデックスで要素を参照できる\n",[45,180,182],{"class":47,"line":181},8,[45,183,184],{},"    print(\"first: \\(texts[0])\")\n",[45,186,188],{"class":47,"line":187},9,[45,189,172],{},[45,191,193],{"class":47,"line":192},10,[45,194,195],{},"    \u002F\u002F for-in文によるループ処理も可能\n",[45,197,199],{"class":47,"line":198},11,[45,200,201],{},"    for text in texts {\n",[45,203,205],{"class":47,"line":204},12,[45,206,207],{},"      print(\"element: \\(text)\")\n",[45,209,211],{"class":47,"line":210},13,[45,212,166],{},[45,214,216],{"class":47,"line":215},14,[45,217,218],{},"}\n",[72,220,74],{"id":221},"参考-1",[76,223,224],{},[79,225,226],{},[82,227,230],{"href":228,"rel":229},"https:\u002F\u002Fqiita.com\u002FTatsuya_ss0121\u002Fitems\u002F7ae5a1b131ad9cc391b9",[86],"[Swift] 可変長引数 #Swift - Qiita",[10,232,234,235,238],{"id":233},"フォーマット指定子03d-などを使った数値の桁埋めゼロパディングの実装","フォーマット指定子（",[19,236,237],{},"%03d"," など）を使った数値の桁埋め（ゼロパディング）の実装",[15,240,241,242,245,246,249],{},"Androidでは ",[19,243,244],{},"String.format(text, value)"," としてフォーマットしたテキストを出力させるが、iOSの場合もほぼ同様。\n",[19,247,248],{},"String"," のイニシャライザにフォーマットと値を渡すだけ。",[36,251,253],{"className":38,"code":252,"language":40,"meta":41,"style":41},"let number = 3\nlet numberString = String(format: \"%03d\", number) \u002F\u002F 出力: \"003\"\n\n",[19,254,255,260],{"__ignoreMap":41},[45,256,257],{"class":47,"line":48},[45,258,259],{},"let number = 3\n",[45,261,262],{"class":47,"line":54},[45,263,264],{},"let numberString = String(format: \"%03d\", number) \u002F\u002F 出力: \"003\"\n",[72,266,74],{"id":267},"参考-2",[76,269,270],{},[79,271,272],{},[82,273,276],{"href":274,"rel":275},"https:\u002F\u002Fyamatooo.blog\u002Fentry\u002F2021\u002F07\u002F23\u002F083000",[86],"【Swift】String(format: ) で桁数を指定してパディングする（0埋めなど） - iOSエンジニアのつぶやき",[10,278,280],{"id":279},"enumの全要素を配列で取得する","Enumの全要素を配列で取得する",[15,282,283,284,287],{},"Enumの定義に ",[19,285,286],{},"CaseIterable"," プロトコルを準拠させてあげるだけ。",[36,289,291],{"className":38,"code":290,"language":40,"meta":41,"style":41},"enum Size: CaseIterable {\n  case maximum\n  case big\n  case medium\n  case small\n  case minimum\n}\n\n",[19,292,293,298,303,308,313,318,323],{"__ignoreMap":41},[45,294,295],{"class":47,"line":48},[45,296,297],{},"enum Size: CaseIterable {\n",[45,299,300],{"class":47,"line":54},[45,301,302],{},"  case maximum\n",[45,304,305],{"class":47,"line":60},[45,306,307],{},"  case big\n",[45,309,310],{"class":47,"line":121},[45,311,312],{},"  case medium\n",[45,314,315],{"class":47,"line":163},[45,316,317],{},"  case small\n",[45,319,320],{"class":47,"line":169},[45,321,322],{},"  case minimum\n",[45,324,325],{"class":47,"line":175},[45,326,218],{},[15,328,329,330,333],{},"このように定義することで、自動的に ",[19,331,332],{},"allCases"," プロパティにアクセスできるようになり、全要素が格納された配列として扱える。",[36,335,337],{"className":38,"code":336,"language":40,"meta":41,"style":41},"Size.allCases.map { \u002F* 各ケースに対する処理 *\u002F }\n\n",[19,338,339],{"__ignoreMap":41},[45,340,341],{"class":47,"line":48},[45,342,343],{},"Size.allCases.map { \u002F* 各ケースに対する処理 *\u002F }\n",[15,345,346,347,350],{},"また、 ",[19,348,349],{},"firstIndex(of:)"," を用いることで、定義されているケースのインデックス（順番）も容易に取得可能。",[36,352,354],{"className":38,"code":353,"language":40,"meta":41,"style":41},"let index = Size.allCases.firstIndex(of: .big)!\n\n",[19,355,356],{"__ignoreMap":41},[45,357,358],{"class":47,"line":48},[45,359,360],{},"let index = Size.allCases.firstIndex(of: .big)!\n",[72,362,74],{"id":363},"参考-3",[76,365,366,373],{},[79,367,368],{},[82,369,372],{"href":370,"rel":371},"https:\u002F\u002Fblog.foresta.me\u002Fposts\u002Fswift_case_iterable\u002F",[86],"SwiftでEnumの全要素を配列で取得する (CaseIterable) - Foresta",[79,374,375],{},[82,376,379],{"href":377,"rel":378},"https:\u002F\u002Fkoze.hatenablog.jp\u002Fentry\u002F2018\u002F10\u002F11\u002F120000",[86],"CaseIterable を使って case の index を取得する - 開発メモとその周辺",[10,381,382],{"id":382},"ボタンタップ中の色を変える",[15,384,385,386,389,390,392,393,396,397,400],{},"Viewのプロパティである ",[19,387,388],{},"isHighlighted"," の更新を受けて、背景色を設定すればよい。\nカスタムViewを実装する際に ",[19,391,388],{}," をオーバーライドし、プロパティオブザーバである ",[19,394,395],{},"didSet"," の中で ",[19,398,399],{},"backgroundColor"," を切り替える。\n実装例は以下。",[36,402,404],{"className":38,"code":403,"language":40,"meta":41,"style":41},"override open var isHighlighted: Bool {\n    didSet {\n        backgroundColor = isHighlighted ? .lightGray : .blue\n    }\n}\n\n",[19,405,406,411,416,421,425],{"__ignoreMap":41},[45,407,408],{"class":47,"line":48},[45,409,410],{},"override open var isHighlighted: Bool {\n",[45,412,413],{"class":47,"line":54},[45,414,415],{},"    didSet {\n",[45,417,418],{"class":47,"line":60},[45,419,420],{},"        backgroundColor = isHighlighted ? .lightGray : .blue\n",[45,422,423],{"class":47,"line":121},[45,424,166],{},[45,426,427],{"class":47,"line":163},[45,428,218],{},[15,430,431,432,434,435,438,439,442,443,446,447,450],{},"ちなみに ",[19,433,388],{}," とは、Androidでいうところの ",[19,436,437],{},"state_pressed"," に相当する状態フラグ。\n",[19,440,441],{},"UIButton"," などの ",[19,444,445],{},"UIControl"," クラスを継承したViewであれば、状態に応じて背景を切り替えるメソッド（",[19,448,449],{},"setBackgroundImage(_:for:)"," など）が標準で用意されているため、それらを使えばタップ中の色を容易に変更することが可能。",[72,452,74],{"id":453},"参考-4",[76,455,456],{},[79,457,458],{},[82,459,462],{"href":460,"rel":461},"https:\u002F\u002Fzenn.dev\u002Fmark_1975m\u002Farticles\u002Fa33ac4d80d367e",[86],"SwiftのisHighlightedとは？ - Zenn",[10,464,465],{"id":465},"テキストフィールドに入力中のキーボードを閉じる",[15,467,468,469,472,473,476],{},"iOSではアプリからキーボードを閉じるのは非常に簡単で、 ",[19,470,471],{},"UITextField"," の ",[19,474,475],{},"endEditing(true)"," を呼び出すだけでよい。",[36,478,480],{"className":38,"code":479,"language":40,"meta":41,"style":41},"@IBOutlet weak var textField: UITextField!\n\nfunc closeKeyboard() {\n    \u002F\u002F キーボードを閉じる\n    textField.endEditing(true)\n}\n\n",[19,481,482,487,493,498,503,508],{"__ignoreMap":41},[45,483,484],{"class":47,"line":48},[45,485,486],{},"@IBOutlet weak var textField: UITextField!\n",[45,488,489],{"class":47,"line":54},[45,490,492],{"emptyLinePlaceholder":491},true,"\n",[45,494,495],{"class":47,"line":60},[45,496,497],{},"func closeKeyboard() {\n",[45,499,500],{"class":47,"line":121},[45,501,502],{},"    \u002F\u002F キーボードを閉じる\n",[45,504,505],{"class":47,"line":163},[45,506,507],{},"    textField.endEditing(true)\n",[45,509,510],{"class":47,"line":169},[45,511,218],{},[15,513,241,514,517],{},[19,515,516],{},"InputMethodManager"," にアクセスしたり、必要なトークン（WindowToken）を渡したりといった手続きが必要で少々煩雑であるのに対し、\niOSのこの設計はとにかくシンプルで扱いやすい。",[72,519,74],{"id":520},"参考-5",[76,522,523],{},[79,524,525],{},[82,526,529],{"href":527,"rel":528},"https:\u002F\u002Fqiita.com\u002Fsaka2jp\u002Fitems\u002F4b8b5f2297910d7f3d1b",[86],"【Swift】TextFieldのキーボードを閉じる方法3選 #Swift - Qiita",[10,531,533,534,537],{"id":532},"iosの-uiview-に角丸や枠線を付ける","iOSの ",[19,535,536],{},"UIView"," に角丸や枠線を付ける",[72,539,540],{"id":540},"角丸にする",[15,542,543,545,546,549],{},[19,544,536],{}," が共通で保持している ",[19,547,548],{},"layer","（CALayer）というプロパティに対応するパラメータがある。\nコード上であれば、以下のように値を設定することで簡単に角丸にすることができる。",[36,551,553],{"className":38,"code":552,"language":40,"meta":41,"style":41},"\u002F\u002F 角丸の半径（半径を大きくするほど丸みが強くなる）\nview.layer.cornerRadius = 8.0\n\n",[19,554,555,560],{"__ignoreMap":41},[45,556,557],{"class":47,"line":48},[45,558,559],{},"\u002F\u002F 角丸の半径（半径を大きくするほど丸みが強くなる）\n",[45,561,562],{"class":47,"line":54},[45,563,564],{},"view.layer.cornerRadius = 8.0\n",[72,566,567],{"id":567},"枠線を付ける",[15,569,570,571,573],{},"枠線の実装も同様で、 ",[19,572,548],{}," に対して以下のように値を設定することで枠線を付けることができる。",[36,575,577],{"className":38,"code":576,"language":40,"meta":41,"style":41},"\u002F\u002F 枠線の太さ\nview.layer.borderWidth = 2.0\n\n\u002F\u002F 枠線の色（CGColorクラスを設定する必要がある点に注意）\nview.layer.borderColor = UIColor.blue.cgColor\n\n",[19,578,579,584,589,593,598],{"__ignoreMap":41},[45,580,581],{"class":47,"line":48},[45,582,583],{},"\u002F\u002F 枠線の太さ\n",[45,585,586],{"class":47,"line":54},[45,587,588],{},"view.layer.borderWidth = 2.0\n",[45,590,591],{"class":47,"line":60},[45,592,492],{"emptyLinePlaceholder":491},[45,594,595],{"class":47,"line":121},[45,596,597],{},"\u002F\u002F 枠線の色（CGColorクラスを設定する必要がある点に注意）\n",[45,599,600],{"class":47,"line":163},[45,601,602],{},"view.layer.borderColor = UIColor.blue.cgColor\n",[72,604,74],{"id":605},"参考-6",[76,607,608,615],{},[79,609,610],{},[82,611,614],{"href":612,"rel":613},"https:\u002F\u002Fqiita.com\u002Fturmeric\u002Fitems\u002F046acb987c4353b3f308",[86],"【Xcode】StoryboardでViewを角丸にする #iOS - Qiita",[79,616,617],{},[82,618,621],{"href":619,"rel":620},"https:\u002F\u002Fmajintools.com\u002F2018\u002F10\u002F26\u002Fborder\u002F",[86],"SwiftでUIViewに枠線と角丸を設定する | アプリ開発の覚書「魔人ツールズ」",[10,623,625],{"id":624},"uilabeluitextfielduitextviewの違い","UILabel／UITextField／UITextViewの違い",[76,627,628,638,651],{},[79,629,630,633,634,637],{},[631,632,69],"strong",{},"：Androidの ",[19,635,636],{},"TextView"," に相当する。テキストを表示するだけのView。",[79,639,640,642,643,646,647,650],{},[631,641,471],{},"：単一行（",[19,644,645],{},"singleLine","）限定の ",[19,648,649],{},"EditText"," に相当する。テキストの入力は1行のみである。",[79,652,653,656,657,659,660,663],{},[631,654,655],{},"UITextView","：複数行入力が可能なAndroidの ",[19,658,649],{}," や ",[19,661,662],{},"ScrollView"," に包まれたテキストエリアに相当する。複数行の表示・入力に対応している。",[10,665,667,670],{"id":666},"uialertcontroller-を用いたアラートダイアログの表示方法",[19,668,669],{},"UIAlertController"," を用いたアラートダイアログの表示方法",[36,672,674],{"className":38,"code":673,"language":40,"meta":41,"style":41},"\u002F\u002F アラートの生成\nlet alert = UIAlertController(title: \"タイトルテスト\", message: \"メッセージテスト\", preferredStyle: .alert)\n\n\u002F\u002F ボタン（アクション）を追加する\nlet action = UIAlertAction(title: \"ボタン\", style: .default, handler: { action in\n    \u002F** タップ時の処理をここに記述 **\u002F\n})\n\n\u002F\u002F アラートにアクションを追加。addActionを複数回呼ぶことでボタンを複数配置することも可能\nalert.addAction(action)\n\n\u002F\u002F 画面上にダイアログを表示\npresent(alert, animated: true)\n\n",[19,675,676,681,686,690,695,700,705,710,714,719,724,728,733],{"__ignoreMap":41},[45,677,678],{"class":47,"line":48},[45,679,680],{},"\u002F\u002F アラートの生成\n",[45,682,683],{"class":47,"line":54},[45,684,685],{},"let alert = UIAlertController(title: \"タイトルテスト\", message: \"メッセージテスト\", preferredStyle: .alert)\n",[45,687,688],{"class":47,"line":60},[45,689,492],{"emptyLinePlaceholder":491},[45,691,692],{"class":47,"line":121},[45,693,694],{},"\u002F\u002F ボタン（アクション）を追加する\n",[45,696,697],{"class":47,"line":163},[45,698,699],{},"let action = UIAlertAction(title: \"ボタン\", style: .default, handler: { action in\n",[45,701,702],{"class":47,"line":169},[45,703,704],{},"    \u002F** タップ時の処理をここに記述 **\u002F\n",[45,706,707],{"class":47,"line":175},[45,708,709],{},"})\n",[45,711,712],{"class":47,"line":181},[45,713,492],{"emptyLinePlaceholder":491},[45,715,716],{"class":47,"line":187},[45,717,718],{},"\u002F\u002F アラートにアクションを追加。addActionを複数回呼ぶことでボタンを複数配置することも可能\n",[45,720,721],{"class":47,"line":192},[45,722,723],{},"alert.addAction(action)\n",[45,725,726],{"class":47,"line":198},[45,727,492],{"emptyLinePlaceholder":491},[45,729,730],{"class":47,"line":204},[45,731,732],{},"\u002F\u002F 画面上にダイアログを表示\n",[45,734,735],{"class":47,"line":210},[45,736,737],{},"present(alert, animated: true)\n",[15,739,740,741,744,745,748],{},"ダイアログを表示させる ",[19,742,743],{},"present(_:animated:completion:)"," メソッドは、ViewControllerのライフサイクル上で呼び出すタイミングが早すぎるとViewの階層構造が未完成のため無視されてしまう（表示されない）ケースがある。\nそのため、安全に呼び出すには必ず ",[19,746,747],{},"viewDidAppear()"," 以降のタイミングで実行する必要がある。",[72,750,74],{"id":751},"参考-7",[76,753,754,761],{},[79,755,756],{},[82,757,760],{"href":758,"rel":759},"https:\u002F\u002Fi-app-tec.com\u002Fios\u002Fuialertcontroller.html",[86],"[iPhone] UIAlertController アラート表示の設定 - テンナビ",[79,762,763],{},[82,764,767],{"href":765,"rel":766},"https:\u002F\u002Fan.hatenablog.jp\u002Fentry\u002F2017\u002F02\u002F13\u002F235229",[86],"【Xcode】UIAlertControllerで簡単進捗ダイアログ作成 - an.hatenablog.jp",[10,769,771],{"id":770},"ios-よくわからないエラー集","iOS よくわからないエラー集",[72,773,775],{"id":774},"failed-to-get-the-task-for-proces","failed to get the task for proces",[15,777,778],{},"Xcodeのプロジェクトで設定した証明書ファイル群にデバッグビルドによるビルドができるような設定になっていない。",[72,780,782],{"id":781},"undefined-symbol","Undefined symbol:...",[36,784,789],{"className":785,"code":787,"language":788},[786],"language-text","Undefined symbol: _GULLogBasic\nUndefined symbol: _OBJC_CLASS_$_***\nUndefined symbol: _OBJC_CLASS_$_***\nUndefined symbol: _OBJC_CLASS_$_***\nUndefined symbol: _OBJC_CLASS_$_***\n","text",[19,790,787],{"__ignoreMap":41},[15,792,793],{},"ライブラリをアプリに組み込んでビルドしたときに発生するエラー。ライブラリがシミュレータに対応していない。\n「シミュレータでも動作するライブラリを使う」か「シミュレータをターゲットにビルドするときは、該当のライブラリを組み込まずに使う。",[795,796,797],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":41,"searchDepth":54,"depth":54,"links":799},[800,803,804,807,811,814,817,820,826,827,831],{"id":12,"depth":54,"text":13,"children":801},[802],{"id":74,"depth":60,"text":74},{"id":90,"depth":54,"text":91},{"id":127,"depth":54,"text":128,"children":805},[806],{"id":221,"depth":60,"text":74},{"id":233,"depth":54,"text":808,"children":809},"フォーマット指定子（%03d など）を使った数値の桁埋め（ゼロパディング）の実装",[810],{"id":267,"depth":60,"text":74},{"id":279,"depth":54,"text":280,"children":812},[813],{"id":363,"depth":60,"text":74},{"id":382,"depth":54,"text":382,"children":815},[816],{"id":453,"depth":60,"text":74},{"id":465,"depth":54,"text":465,"children":818},[819],{"id":520,"depth":60,"text":74},{"id":532,"depth":54,"text":821,"children":822},"iOSの UIView に角丸や枠線を付ける",[823,824,825],{"id":540,"depth":60,"text":540},{"id":567,"depth":60,"text":567},{"id":605,"depth":60,"text":74},{"id":624,"depth":54,"text":625},{"id":666,"depth":54,"text":828,"children":829},"UIAlertController を用いたアラートダイアログの表示方法",[830],{"id":751,"depth":60,"text":74},{"id":770,"depth":54,"text":771,"children":832},[833,834],{"id":774,"depth":60,"text":775},{"id":781,"depth":60,"text":782},"2026-06-14T07:00:00+09:00","iOS(Swift)の備忘録です。",false,"md",{},"\u002Fother_memorandum\u002Fios",{"title":5,"description":836},"900.other_memorandum\u002F10.ios","Whd7jQhrfx8C68g5dAhkSGueqWo6b7MWOaUObvFELa0",1781530000771]