Raspbianのsudo viでpiユーザーと同じ.vimrcを適用させる方法
次のコマンドを実行するだけ!
sudo ln -s /home/pi/.vimrc /root/
- 当然piユーザーで.vimrcを作成しておく必要がありますが・・・
【Swift】AVAudioPlayerのinitializeでエラー!?
- AVAudioPlayerを使ってmp3を再生しようと実装をした時にハマったこと・・・
- 以下のソースの様にAVAudioPlayerをイニシャライズしようとすると、何故かその行でブレイクしてしまう・・・何かの例外はキャッチして止まっているようだが、何も情報が出ない・・・。にもかかわらず、ステップアウトしていくと、クラッシュするでもなくそのまま処理が進んでってしまう。なんじゃこれは。。。
AVAudioPlayer(data: data, fileTypeHint: AVFileTypeMPEGLayer3)
- これでいいのか!?
- ググってもなかなか解決策が見当たらなかったのだが、ようやく以下のリンク先にあるやり方で解決。例外が発生すると、そこで自動的にブレイクする設定にしていたのだが、その例外の種類を全開にしていると起こるようだ。。。「All」から「Objective-C」に変えたら確かに起こらなくなった。以下のリンク参照
【Swift】UIToolbarをキーボードと一緒に上げ下げしたい
画面の下に張り付いているUIToolbar… こいつを画面下から現れるキーボードと一緒に上げ下げしたい!!
- ようやく答えを見つけた。以下のリンクを参照してなんとか解決。
- リンク先はconstraintsの参照をViewControllerにもたせていたが、identifier使って取ってみた
@objc private func keyboardWillShow(_ notification: Notification) { let frame = notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue let height = frame.cgRectValue.height let duration = notification.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double UIView.animate(withDuration: duration) { super.view.constraints.first(where: { (constraint) -> Bool in return constraint.identifier == "toolBar" })!.constant = height super.view.layoutIfNeeded() } } @objc private func keyboardWillHide(_ notification: Notification) { let duration = notification.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double UIView.animate(withDuration: duration) { super.view.constraints.first(where: { (constraint) -> Bool in return constraint.identifier == "toolBar" })!.constant = 0 super.view.layoutIfNeeded() } }
【Swift】複数のUITextFieldを1つのUITextFieldDelegateで扱う時の話
- 下記の事をやったときに、どのUITextFieldを操作しても同じDelegateメソッドが発火してしまう。DelegateメソッドのパラメータにUITextFieldが渡ってくるのだが、配置したUITextFieldのどれでDelegateが発火したかどうやって判断するのが良いのか?
- ViewControllerに複数のUITextFieldを配置
- UITextFieldのdelegateをそのViewControllerに接続
- ViewControllerでUITextFieldDelegateをimplements
- UITextFieldにtagを付けて、パラメータで渡ってきたUITextFieldのtagで判断する
- UITextFieldを@IBOutletで参照し、その参照とパラメータが同じかどうかで判断する
どっちかな〜〜
【Swift】NavigationControllerで1つ前の画面に戻る方法
NavigationControllerで1つ前の画面に戻る方法
- 気がつくと忘れてしまう
self.navigationController?.popViewController(animated: true)
フィラメントLED
・さて、どれがLEDでしょうか?
まさかこんなLEDの電球があるとは思わなかった。答えは一番左端の奴がLED。これ全然わかんないでしょ。LEDの右隣が10Wの白熱電球。で、更にその右隣が25Wの白熱電球。LEDなのに全く違和感なし。これなら全部LEDにしちゃっても問題ないな。
LED シャンデリアランプ 2W E17金口 C35 電球色相当 フィラメント ライト 雰囲気重視 レトロ電球 3個セット 電球色
- 出版社/メーカー: Amanda
- メディア:
- この商品を含むブログを見る
Swiftでバーコードを読もうとした時のエラー
バーコードでエラー
- Swiftでバーコードを読んでみようと、ちょっとやってみた。
すると、以下のエラーに出くわした。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[AVCaptureMetadataOutput setMetadataObjectTypes:] Unsupported type found - use -availableMetadataObjectTypes'
正誤表
どうも、処理の順番がマズってたみたいだ
- 正
let aVCaptureMetadataOutput = AVCaptureMetadataOutput() aVCaptureMetadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) aVCaptureSession!.addOutput(aVCaptureMetadataOutput) aVCaptureMetadataOutput.metadataObjectTypes = [AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code]
- 誤
let aVCaptureMetadataOutput = AVCaptureMetadataOutput() aVCaptureMetadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) aVCaptureMetadataOutput.metadataObjectTypes = [AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code] aVCaptureSession!.addOutput(aVCaptureMetadataOutput)
何が問題かって言うと、「metadataObjectTypes」に値を設定するタイミング・・・
SessionにaddOutputした後、じゃないと駄目みたい。
Atomのterminal-plusが動かない・・・
以下に移動しました
TwitterApiのカンマ・・・
TwitterのApiを叩くとき・・・
例えば、ttps://api.twitter.com/1.1/users/lookup.jsonとか。
クエリにuser_id=xxx,xxx,xxx,xxxとかくっつけるんだけど、
URLエンコードする際にちょっとした癖が・・・
通常カンマ","は"%2C"にエンコードすれば良いのだが、
oauth_signatureを作るときのエンコードは"%252C"である必要があるっぽい。
Objective-Cの場合はCFURLCreateStringByAddingPercentEscapesで
2回エンコードを書けるとそれになってたっぽい。
SwiftでaddingPercentEncodingを使った時は2回エンコードかけても、
"%2C"のまま。当然だけど。。。
そもそもまぐれでうまく行ってたっぽい。
なにこれ・・・