Containerについて
マイクラ:mcpipyでAttributeErrorが発生したときの対処法
エラー内容
今回マイクラでpythonを使うにあたり行った手順と、エラーが起きた箇所は以下の通りだ。
①マイクラをダウンロード
②pyenvにてPythonのインストール
③forgeをダウンロード
④modsをゲームフォルダに格納
⑤mcpipyをゲームフォルダに格納
⑥Thonnyエディタにてコードを実行→エラー発生
Objective-Cインスタンスメソッドとクラスメソッドの書き方
違い
- + プラス クラスメソッド
- クラスの型から直接実行できる静的関数
[Person.h]
#import <Foundation/Foundation.h> @interface Person : NSObject // メソッド定義 -(void) doInstanceMethod; +(void) doClassMethod; @end
[Person.m]
#import クラス名.h #import プロジェクト名-Swift.h // Personクラス @implementation Person: NSObject // 動的関数:インスタンスメソッド -(void)doInstanceMethod { // 処理 } // 静的関数:クラスメソッド:静的:Swiftでいうstatic +(void)doClassMethod { // 処理 } @end
[HumanResources.m]
// インスタンス化 Person *myPerson = [[Person alloc] init]; // doSomethingメソッドを呼ぶ :インスタンスメソッド:動的 [myPerson doInstanceMethod]; // doSomethingElseメソッドを呼ぶ :クラスメソッド:静的:Swiftでいうstatic [Person doClassMethod];
簡易ローカルAPIサーバ作成手順(ruby)
内容
APIの疎通確認をしたいときに、ローカルAPIサーバをすぐに実行できるような状態を作っておきたかったため手順をまとめた
①gemとrubyのパス確認
which gem which ruby
※システムのパスを指していたら、rbenvでrubyを管理するようにする
②rbenvをインストールする
brew update brew install rbenv ruby-build
③rubyのバージョンを確認する
システムを利用しているか確認
rbenv versions
④インストールできるrubyのバージョンを確認
rbenv install -l
⑤現行の安定板をインストール
rbenv install 3.1.2
⑥globalに指定する
rbenv global 3.1.2
// 確認する
rbenv versions
⑦パスを通す
// デフォルトシェルを確認する
echo $SHELL
// カレントディレクトリの情報を表示する
ls -a
// パスを通す
[[ -d ~/.rbenv ]] && \ export PATH=${HOME}/.rbenv/bin:${PATH} && \ eval "$(rbenv init -)"
⑧確認する
which ruby which gem
⑨pumaを入れる
sinatraを使うとき、このままだとアプリケーションサーバがないと言ったエラーを吐くので
gem install puma
⑩実行(api_server_test.rbは任意の名前)
ruby api_server_test.rb
まとめ
ローカルサーバ作成用のファイルはネット上にたくさんあるため、
カスタムしたものを今度じっくり描きたい
Gitアカウントを複数所持してる時の注意点
内容
業務用と個人用の2つのGitアカウントを持っているとき、どうやって切り替えしたらいいか調べた。
現在のアカウントを確認する
git config --global user.name git config --global user.email
あまり使わない or よく使う でアカウントを切り替える
自分の場合は個人用をサブ垢、メインを業務用とした。
その場合は、サブ垢(あまり使わない)はプロジェクト単位で設定する。
// まず個人用のプロジェクト直下に移動する cd /プロジェクト直下 // localをつけてアカウントを設定 git config --local user.name "アカ名" git config --local user.email "メアド" // 設定が反映されているか確認 cat ~/.gitconfig
気を付けること
個人用でGitアカウントを使っていて、切り替えをせずにGithubにコミットをすると草が生えない。
※別垢でコミットしているため
心配なら、git commitする時には、一度git logでAuthorが誰になってるか確認するとよい。
git log
Objective-Cの単一処理のIf文の中にNSlogを書くとそのメソッドが実行されない
内容
業務でObjective-Cで書かれたアプリをデバッグしてたら、ログを書いたところのメソッドが呼ばれない。どうしよう
何が悪いか?
単一処理の書き方なのに、returnとログの行で2つの処理がある
// ダメパターン例 if (a == -1 && b == -1) NsLog(@"test"); //1つめ return; //2つめはダメ
修正した後
複数書けるようにした。
//成功するパターン if (a == -1 && b == -1){ NsLog(@"test"); return; }
ObjCはメモリ管理やらメソッドの呼び方やら非同期やら覚えることが多いから頑張る
FirebaseにBMIデータを登録するIOSアプリを作る(Part.5-1)
やること
少し間が空いてしまいましたが、FirebaseにBMIデータを登録するアプリを完結させたいと思います。
...はい。申し訳ありません。
テキスト形式で説明するといつの間にかブログが長くなってしまうことに気付きました。
なので、今回からもう少し章を小分けにしたいと思います。
このままだと、説明を大きく省略してしまいそうなので目次を更新しました。
更新した目次は以下のとおりです。
目次
Part1. 全体図を把握するのとプロジェクト作成まで
Part2. 画面周りを作成する
Part3. Firebase連携準備
Part.4 コードと画面を接続させる
Part.5 Firebaseへデータを登録する
Part.5-1 ボタンとラベルをコードと紐付ける 追記
Part.5-2 データ登録処理① 追記
Part.5-3 データ登録処理② 追記
Part.6 Firebaseからデータを取得する 追記
Part.6-1 ボタンとラベルをコードと紐付ける(Get編) 追記
Part.6-2 データ取得処理① 追記
Part.7 完成・動作確認 追記
環境
Xcode: ver12.0.1
Swift5
MacOS: MacOS Catalina 10.15.7
それではFirebaseにデータを登録し、取得していきましょう。
とは言いましたが、まずFirebaseにBMIデータを登録しないとそもそも取得できません。
データを登録するところから始めます。
Firebaseへデータを登録する(Post)
ViewControllerのボタン「BMIを登録する」より[Ctrl]キーを押下しながらD&D(ドラッグアンドドロップ)で PostViewControllerへ接続しましょう。
「Show」で紐付けます。
このような感じになると思います。この状態で既にボタンを押下した際に画面遷移ができると思います。
右側の「ユーティリティーエリア」と呼ばれるメニューから「Presentation」の部分を「FullScreen」に変更すると画面遷移後に遷移先の画面が全画面表示になります。
画面を確認すると、全画面表示になっていると思います。
が、今回は「Automatic」のままで進めたいと思います。
次は「PostViewController.swift」へコードを記述していきます。
下記画像はコメントアウトを消した状態の画面になります。
2画面表示にしてからボタンとラベルの紐付けを行います。
既に1つのテキストラベルの紐付けが完了しています。
次はボタンを紐づけていきます。同じようにD&Dです。
名前はそれぞれ
身長を入力するラベル:heightTextLabel
体重を入力するラベル:boundsTextLabel
登録ボタンの名前:registerBtn
としています。ネーミングセンスは悪いですね。実施する方は、もう少しわかり安いネームにしてください。
最後に登録ボタンを押下した際の動きを記述するメソッドも生成しましょう。
今度はviewDidLoadの下あたりにD&Dしましょう。
「Connection」の部分が「Action」になっていればOKです。
下図のようになっていれば紐付けができています。
今回はこんなところでしょうか?
ブログで説明する大変さがわかりました。とても勉強になったので次回から作ったアプリの作り方を紹介する際には見積もりには気をつけたいと思います。