自作のコマンドを作る
会社でお昼を食べてる時に、ふと思った。 コマンド作った事ないや。
という事でお昼休みに更新。
コマンド作成
- コマンドファイルを作成
# vim tbrhdys #!/bin/sh echo "hello tbrhdys!!"
- コマンドファイルに権限を付与して/usr/local/bin/ に配置
sudo chomd a+x tbrhdys mv tbrhdys /usr/local/bin/
- 実行
tbrhdys > hello tbrhdys!!
PostgreSQLのBackupとRestore
PostgreSQLのbackup / restore
使う度にオプションを忘れてしまうので、メモ
- 前提
- postgresユーザで実行
- [調べ途中]postgresグループであれば良いのか?
su - postgres
db backup
pg_dump -c database_name > out_file_name
db restore
psql database_name < in_file_name
lualatexを試す
MarkDownのドキュメントをPDFで出力したい
普段はブラウザからPDF印刷で出力しているが、体裁を整えたいという理由でググると pandocという言葉に行き着く
- MacTeX.pkg をInstall
- pandoc コマンドでpdfを出力する
pandoc: lualatex not found. lualatex is needed for pdf output.
- これはpathを通す必要があるという事
- Pathを追加
### lualatex export PATH=$PATH:/usr/texbin
- 日本語を含むpdfを出力
- 結構時間かかって念願のpdf出力
pandoc -o test-ja.pdf --latex-engine=lualatex test.md
参考リンク
Markdownで書いたテキストをPDFに変換して納品用ドキュメントを作成する方法 - ククログ(2015-04-27)
GameScene.swiftからViewControllerのdissmissViewControllerAnimatedを呼ぶ
はまりながらもstackoverflowの記事に当たり、何とか解決
やりたい事
- GameScene.swiftでUIButton生成
- ButtonタップでViewControllerのdissmissViewControllerAnimatedを呼ぶ
参考リンク
ios - How to call method from ViewController in GameScene - Stack Overflow
対応内容
- GameSceneにviewControllerプロパティを作成
class GameScene : SKScene, SKPhysicsContactDelegate { var viewController: ViewController!
- ViewControllerではGameScene作成時にself(ViewController)を代入
// シーン作成 let scene = GameScene() scene.viewController = self
- これでGameScene内でButtonのaddTargetでタップされた時に呼ぶ事が出来る
// ボタンを生成 let homeIcon = UIButton(frame: CGRectMake(50, 400, 200, 50)) homeIcon.setImage(UIImage(named: "home"), forState: .Normal) homeIcon.addTarget(self, action: "backToMenu:", forControlEvents: .TouchUpInside) self.view!.addSubview(homeIcon) func backToMenu (sender: UIButton) { self.viewController.dismissViewControllerAnimated(true, completion: nil) }
UIButtonをタップした時にfuncをcallする
細々とSwiftでアプリ実装を進めててるけど、ググるとObjective-CとSwiftのサンプルが出てくる事が多い。 結果として、Swiftを学びつつもObjective-Cが少しずつ読める(読む気になる)という感じになってきた。
さて、ちょっとハマったのでメモ。
UIButtonをコードから生成して、funcをcallする方法。 UIButtonからcallする場合はsenderを定義する必要がある。
作ったボタンをタップするとException発生
unrecognized selector sent to instance 0x7ff630592d80'
対応
- callするfuncの引数にsender: AnyObjectを追加
原因
- callされる側にSender
サンプル
let hogeBtn = UIButton(frame: CGRectMake(0, 0, 300, 50)) hogeBtn.layer.position = CGPoint(x: self.view.frame.width/2, y:100) hogeBtn.setTitle("hogeButton", forState: .Normal) hogeBtn.addTarget(self, action: "hoge:", forControlEvents: .TouchUpInside) self.view.addSubview(hogeBtn) // NG パターン func hoge() { NSLog("called") } // OK パターン func hoge(sender: AnyObject) { NSLog("called") } // OK パターン 必ずUIButtonからcallされるのでAnyObjectじゃなくて良い func hoge(sender: UIButton) { NSLog("called") }
参考にさせて頂きました
Swift 1.2 Sequeで画面遷移
何度やっても覚えられず、Objective-C / Swiftでやってるけど、 UIの操作は記録に残しづらいので、忘れる度に調べてる気がする
手順
- seque追加
- ViewController上に配置したボタンから別のViewへCtrlを押しながらドラッグ
- 戻る手順
- 戻り先にメソッド追加
- 戻るボタンをCtrlを押しながらViewの最上部にあるExitアイコンまでドラッグ
参考にさせて頂きました ありがとうございます。 m( )m