flyingbirdのiPhoneアプリ開発記録

- PolyRhythmの中の人がiPhoneアプリ開発中に思ったことを記録するブログです -

Blog移行のお知らせ

Blog移行のお知らせです

今までこちらで、開発者のBlogを書いていたのですが、今後、「For Developer」に移行します。今後ともよろしくお願いします

【Swift4】@objc絡みのワーニング

また出た良くわからないワーニング

The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "AppName" target.


消し方

  • TargetsのBuild Settingsで「inference」で検索する。
    Swift 3 @objc Inferenceの項目が表示されるので、
    Targetsの設定を「Default」に変更する
  • 以下のサイトを参考に・・・

stackoverflow.com

その先

  • Objective-CからSwiftのメソッドが見えなくなる。"AppName-Swift.h"にObjective-Cから呼び出したいSwiftメソッドが出力されなくなってしまった。
    どうも参照したい各メソッドに@objcを書かなければならないらしい。面倒くさい。人をハメようとしてるとしか思えない

qiita.com

【Swift4】iOS11でUIBarButtonItemのサイズがおかしくなった

以下に移動しました

www.poly-rhythm.com

【Swift4】Stringのイニシャライズでエラー

Swift4にしたらStringの初期化でコンパイルエラーが発生

  • Swift4にしたら以下のようなエラーが出始めた。
'init' is unavailable: String.init(_:String) is no longer failable
'init' was obsoleted in Swift 4 (Swift.String)


原因は・・・

  • 原因はStringのイニシャライズ時に「!」マークがくっついていた事。
    へぇ〜。だそうです。
String("")!

↓↓↓↓↓

String("")

【swift4】substring(to:)がdeprecated!!

以下に移動しました

www.poly-rhythm.com

ubuntuにopenjdk9をインストール

ubuntu16.04にopenjdk9をインストールしてみた

  • 以下のコマンドでインストール
# sudo aptitude install openjdk-9-jdk


インストール時にエラー発生

  • なんだかヘッダファイルの上書きが出来ないっぽい
The following NEW packages will be installed:
  openjdk-9-jdk openjdk-9-jdk-headless{a} 
0 packages upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/345 kB of archives. After unpacking 831 kB will be used.
Do you want to continue? [Y/n/?] Y
Selecting previously unselected package openjdk-9-jdk-headless:amd64.
(Reading database ... 916479 files and directories currently installed.)
Preparing to unpack .../openjdk-9-jdk-headless_9~b114-0ubuntu1_amd64.deb ...
Unpacking openjdk-9-jdk-headless:amd64 (9~b114-0ubuntu1) ...
Selecting previously unselected package openjdk-9-jdk:amd64.
Preparing to unpack .../openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb ...
Unpacking openjdk-9-jdk:amd64 (9~b114-0ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/jvm/java-9-openjdk-amd64/include/linux/jawt_md.h', which is also in package openjdk-9-jdk-headless:amd64 9~b114-0ubuntu1
Errors were encountered while processing:
 /var/cache/apt/archives/openjdk-9-jdk_9~b114-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Failed to perform requested operation on package.  Trying to recover:


強制上書きでインストール

  • 参考サイトを参考に以下のコマンドでインストール出来た。
    てか、aptitudeで強制上書きってどうやるんだろう・・・
# sudo apt -o Dpkg::Options::="--force-overwrite" install openjdk-9-jdk


デフォルトのjavaを変更

  • まずはインストールされてるjavaを確認
# update-java-alternatives -l
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-1.9.0-openjdk-amd64       1091       /usr/lib/jvm/java-1.9.0-openjdk-amd64


  • デフォルトのjavaを変更
# sudo update-java-alternatives --jre-headless --jre -s java-1.9.0-openjdk-amd64


参考サイト

askubuntu.com

ChinaPostの追跡

  • 最近Amazonで買い物をすると、中国から送られてくることがある。
    物も安くて配送料も無料・・・
    おいおい、スゲーな。
    でもね〜、ちょっと遅いんすよ。

    なかなか届かないので、心配になるわけですが、以下のサイトで追跡出来る。
    いろんな配送業者に対応してるとの事。
    便利じゃん

www.aftership.com

herokuコマンド

  • 時々しか触らないからすぐ忘れちゃうんですよね・・・

herokuへログインする

  • Terminalを開いてどこでも実行可
    メールアドレスとパスワードを入力
# heroku login
Enter your Heroku credentials:
Email: xxx@yyy.zzz
Password: ***


herokuからログアウトする

# heroku logout
Local credentials cleared


無料分の残時間?を表示する

# heroku ps
Free dyno hours quota remaining this month: xxxh yym (zz%)


修正したアプリをherokuへデプロイ

  • デプロイしたアプリのディレクトリで実行
    ビルドが成功すればOK
# git push heroku master
.
.
.
remote:        BUILD SUCCESSFUL
.
.


heroku上でコマンド実行

  • デプロイしたアプリのディレクトリで実行
    ダブルクォートの中に実行したいコマンドを打つ
    "ls -aFl"とか・・・
# git run "xxx"


アプリのログを見る

# heroku logs


herokuのヘルプを見る

# heroku help


【ラズパイ】Raspbian JessieからRaspbian Stretchへアップデートしてみた

現在のシステムを最新化

  • まずは今のとにかくアップデート。いつもはaptitudeだけど、今回はaptを使う
# sudo apt update
# sudo apt upgrade
  • 続いてこれ
# sudo apt dist-upgrade


Raspbianのチェック

  • 何か起きた時にどうしたらよいかわからないけど、参考サイトのようにやってみる。
    自分の環境では何も出力されなかったけど、されたらどうすんだろ・・・
# dpkg -C
# apt-mark showhold


リポジトリの向き先をJessieからStretchへ変更する

  • jessieをstretchに書き換えるだけ
# sed -i 's/jessie/stretch/g' /etc/apt/sources.list


新Raspbianで最新化

  • まずはいつものこれ
# sudo apt update
  • 次にシミュレートでアップグレードしてみる
    まあ、これで何か出たとろこでどうしたらよいかわからないんだけどね
# sudo apt --simulate upgrade
  • いよいよアップグレード・・・結構長いよ。いやほんとに
    いろいろ聞かれたりするし
# sudo apt upgrade
# sudo apt dist-upgrade


最後に

  • 再起動でしょうか
    • 再起動の前に、/etc/dhcpcd.conf の中とかは確認しておくと良い。
      設定を消しちゃってる場合があるので、ネットに繋がるように元に戻しておく。
# sudo reboot
  • これもやったほうが良いんですかね
# sudo apt autoremove


参考サイト

linuxconfig.org

結果

  • どうもロケールの設定がおかしくなっちゃいましたね・・・これが原因か? 前からなってたっけ。。。
  • やるときは自己責任で・・・

crontabをファイルから読み込む方法

やり方

  • crontabを特に引数無しでファイルを指定することで読み込めます。
    直接編集は危険なので、別ファイルで管理することをお薦めします。
crontab xxx.txt