ベルマークのない自由帳

ベルマークのない自由帳

有益と無益の境界例

iOSアプリ開発メモ

iOSアプリ開発メモ -UIViewControllerにUITableViewDataSourceを追加したらエラー

アプリ開発の勉強中に以下のようなクラス定義が登場。 class HogeLineViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { } 意味もよくわからずTableViewを追加したときの呪文だと思ってビルドしたらエラー。 Type ‘HogeViewC…

carthage updateしようとしたらxcrun: error

$ carthage update を実行後 Dependency “hoge" has no shared framework schemes If you believe this to be an error, please file an issue with the maintainers at なんかいろいろ… xcrun: error: unable to find utility "xcodebuild", not a develope…

CocoaPods -pod install後の.xcodeproj Couldn't load project-

pod installを実行後、「 .xcodeproj Couldn't load project」と言われてしまった。 以下のページを見てみると、レポジトリで競合が起きてしまっているとかなんとか。 stackoverflow.com 解決方法 競合を解決するために、再度以下のコマンドを実行。 $ cd ./…

CocoaPodsをインストールしてみた

クールなライブラリを使い放題でリッチなアプリがお手の物になると噂のCocoa Podsをインストールしてみました。 Cocoapodsのインストール ターミナルで以下を実行して、パスワードを入力すればインストール開始。 $sudo gem install cocoapods Password: 28 …

iOSアプリのUIガイドライン -iOSのデザインにおける3つのテーマ-

岸川さんのこちらのツイートを参考にして、公式のガイドラインを読んでみようと思い立ちいざ実践。 今日のセッションで私が言いたかったことは、モバイルの開発で最も重要なことはそれぞれのプラットフォームを深く知ることで、そのためにUIガイドラインをよ…

iOSアプリ開発メモ No.28 -サイズクラスについて-

Auto Layoutやアダプティブデザインについて調べているとよく目にする「サイズクラス」という言葉。 「クラス」という言葉があるからどこかに定義されているものかと思っていたけど、 そんな単純な話ではないらしい。 (実際に) ざっくり サイズクラス=画…

iOSアプリ開発メモ No.26 -UIWindowについて-

以下の記事で出てきたUIWindowについて、少し調べてみた。 sona.hateblo.jp ざっくり かんたんに言うと window = ViewControllerを扱っていろいろなタスクやイベントをパフォーマンスさせる場 「通常はXcodeがメインwindowを与えてくれるけど、異なるStoryBo…

iOSアプリ開発メモ No.25 -swapを用いた値の入れ替え-

swap()メソッドを用いてswap(&変数1, &変数2)とすると、2つの変数がそれぞれ持っている値を入れ替えることができる。 使い方 var hoge = "hoge" var piyo = "piyo" swap(&hoge, &piyo) print(hoge, piyo) -> "piyo" "hoge" 可変コレクションの場合 ミュータ…

iOS開発メモ No.24 -Genericsとは-

ちょくちょく目にするようになったジェネリクス(Generics)という言葉。 ジェネリック薬品とトットちゃんしか思いつかないので、調べてみた。 Generics generic[dʒənérɪk]:一般的な、包括的な、総称的な 今では多くのプログラミング言語にある「型を明示せず…

iOS開発メモ No.23 -Optional型のアンラップ(unwrap)について-

ただでさえわかりづらいOptional型についてまわる「unwrap」「unwrapped」「unwrapping」という単語群。 かんたんに整理してみた。 そもそもOptional型とは? nilを許容する変数をOptional型といい、宣言時に明示した型の末尾に?か!をつける。 詳しい説明は…

iOS開発メモ No.22 -Constrain to marginsについて-

Add New Constraintsにいるコイツ。 デフォルトでチェックが入っている事が多く、チェックの有無によって何が変化するのかいまいちわからなくて気持ち悪い。 チェックの有無で確認してみた 左leadingに対するConstraintを参照してチェックをつけた状態の値、…

iOSアプリ開発メモ No.22 -ボタンやラベルの非アクティブ化(非表示)-

初期状態では「戻るボタン」を非アクティブや非表示にしたい。 それ以外にも条件に応じたアクティブ/非アクティブの切り替えをしたい。 方法 viewDidLoad()で.isHiddenメソッドを使ってあげる。 IBOutlet var backButton: UIButton! override func viewDidLo…

iOSアプリ開発メモ No.21 -初回起動時のみ開くView Controller-

アプリをインストールしたあとの初回起動時のみ開くチュートリアル的なアレを実装したい。 調べてみると半端じゃなく時間がかかった…。 今回はとりあえず本当に適当なメモ。 あとでUIWindowとかUserDefaultsについてもまとめたい。 何か間違ってたら指摘お願…

iOSアプリ開発メモ No.20 -Cocoa Touch Classとは-

ファイルの新規作成時になんとなく毎回選んでいるCocoa Touch Class。 他の形式はさておき、いつも使っているものぐらい正体を把握しておきたい。 Cocoa Touch Classについて 一言で言うと「Cocoa Touch」はiOSにおけるフレームワーク。 ButtonとかLabelとい…

iOSアプリ開発メモ No.19 -Storyboard doesn't contain a view controller with identifier-

Page View Controllerからコーディングで画面遷移を行おうとしたところ Storyboard doesn't contain a view controller with identifier というエラーに遭遇。 こいつがなかなか手強かった…。 解決法 調べると概ね3つの方法がありました。 Use Story board I…

iOSアプリ開発メモ No.18 -Labelに複数行表示する-

Labelに複数行表示する際に設定するLinesという項目。 表示させたい行の分だけ値を入力すればいい、ということはなんとなくわかる。 じゃあ制限を設けず複数行表示させるにはどうすればいいか。 方法 Linesを「0」に設定する。 ちゃんちゃん♪ (LabelのWidth…

iOSアプリ開発メモ No.17 -異なる画面サイズでも同じレイアウトにしたかった-

今までiPhone8のレイアウトでそれっぽく作ってきたけど、他の機種で確認するとレイアウトがガタガタになってしまう…。 (iPadだと右上に寄っていて、iPhoneSEだと画面外にラナウェイする) 調べるとAuto LayoutやらSize ClassやらConstraintsやら、様々な情…

iOSアプリ開発メモ No.16 -Page Controllの使い方-

ページを捲るようにラベルのテキストが切り替わるのに連動して、今が何個目か可視化したい。 方法 View ControllerにPage Controlをにゅっと持ってきます。 そうすると驚きの白さのPage Controlが現れますが、これは初期設定で丸の色が白になっているせいで…

iOSアプリ開発メモ No.15 -配列内から特定の要素を検索-

配列内にある要素が入っているか判別したい、あるいはインデックスを取得したい。 方法 .indexメソッドを用います。 var hogeArray = (“foo”, “bar”, “piyo”) print(hogeArray.index(of: “bar”)) -> 1 ある要素を配列から削除したい場合.removeメソッドと.in…

iOSアプリ開発メモ No.14 -配列の要素数を取得-

配列の中にある要素数が一定数に達したときの処理を実装したい。 直感でlen(hogeArray)やhogeArray.lengthとしてみるもエラーになってので調べました。 方法 lengthではなく.countメソッドを用います。 hogeArray = (“hoge”, “foo”, “bar”) print(hogeArray.…

iOSアプリ開発メモ No.13 -空の配列の作り方-

空の配列を宣言しておいてあとから要素を格納したり引っぱり出したりしたい。 何回やっても覚えられないから覚書に。 方法 String型の配列なら、 var hogeArray = [String]() Int型の配列なら var hogeArray = [Int]() 他の型でもやり方は[]内で型を宣言して…

iOSアプリ開発メモ No.12 -App Delegateを使ったView Controller間のデータ移動-

以前異なるView Controller間で値のやり取りを行う場合「App Delegateを使った方法が1番簡単」と書きました。 そのやり方を確認したいと思います。 方法 前回も紹介したこちらのページを参考にしていきます。 https://qiita.com/xa_un/items/814a5cd44726746…

iOSアプリ開発メモ No.11 -Buttonの文字列取得-

押されたButtonの文字列を取得してLabelに表示したい。 方法 Buttonの文字列を取得するには.currentTitleを使用します。 hogeLabelに押されたボタンの文字列を表示したい場合このようになります。 @IBAction func push(_ sender: Any) { hogeLabel.text = ho…

iOSアプリ開発メモ No.10 -ViewController間のデータのやり取り-

ViewController1で変数に入れた値をViewController2で引き継いで使いたい。 Googleで調べると以下のようなものがでてきました。 ・Ex.swiftを作成してその中にグローバル変数を置く ・AppDeligate.swiftに変数を置く ・Segueを扱うメソッドで渡す 私は直感的…

iOSアプリ開発メモ No.9 -画面遷移の条件分岐-

選択されたパーツによって遷移するViewControllerを違うものにしたい! でも1つのButtonからは1つのSegueしか生えてこないから、複数のViewControllerを選ない…。 解決法 ViewConrollerからのSegue 方法は意外と簡単で、ButtonなどのパーツからではなくViewC…

iOSアプリ開発メモ No.8 -実機テストしようとしたらエラー-

私のiMac(late2012の21.5inch)はヒーリキーなので、シミュレーターがおもすぎて実機テストしかできません。 が! 実機テストしようとしたところ以下のようなエラーが出てきました。 The maximum number of apps for free development profiles has been reac…

iOSアプリ開発メモ No.7 -nilと!について-

よくエラーで「ちゃんと!をつけてね」と言われて従うも、!の意味がよくわからない。 調べてみると使う文脈によって意味が異なるらしい…。 それにnilを理解しないと先に進めないらしい…。 nilの意味 ということでまずはnilの意味ですが、要するに「空っぽ」…

iOSアプリ開発メモ No.6 -変数定義のvarとlet-

Xcodeの大体の操作を覚え始めたころに頻繁に目にし始めるlet。 いきなり出てくると混乱するけど、調べてみるとすぐに解決。 varとletの違い var variableHoge = "あとから中身を変えられる,いわゆる「変数」" let letHoge = "あとから中身を変えられない,い…

iOSアプリ開発メモ No.5 -エントリーポイントがないときの警告-

いらなくなったViewControllerを削除してー、 新しいViewControllerを作り直してー、 ひとまずビルド! と意気込んでいたら警告が出た…。 Unsupported Configuration: “New View Controller“ is unreachable because it has no entry points, and no identif…

iOSアプリ開発メモ No.4 -NSUnknownKeyException-

(入門形式でやってくの疲れたのでやめます…。) ビルドして実機で動作確認をしようとしたところ、ビルドはSuccessなのに端末上でアプリがフリーズ…。 右下のデバッグ画面でログを確認すると'NSUnknownKeyException'なんて書いてある。 その後には reason: ‘[<Hoge.ViewController 0x129d86750> </hoge.viewcontroller>…