デバッグ時のみ有効となるようにNSLogをマクロ化して使う
デバッグ時にNSLogを使って動作確認するが、本番モジュールでは無効化したい。
そのため、マクロを用いて別関数名で定義する。
//ヘッダーimport文の下あたりに定義 #if DEBUG #define MyLog(fmt,...) NSLog((fmt),(__VA_ARGS__)) #else #define MyLog(fmt,...) #endif
上記の場合、
int a = 10; MyLog(@"a=%d",a);
のように何かしら引数が1つは必要となる。
この場合
MyLog(@"test");
といった単純に引数を伴わない出力ができない。そのような場合は以下とする。
//ヘッダーimport文の下あたりに定義 #if DEBUG #define MyLog(...) NSLog(__VA_ARGS__) #else #define MyLog(...) #endif
これで出力されるようになる。
追記
*-Prefix.pchという場所に書くとどのソースからでも参照できるので便利だそうな。
NSLog デバッグ用の各種ログマクロまとめ
Objective-Cのプロトコルの宣言と定義について。
ネット上で各種サンプルをみていると、宣言時と定義が同じタイミングで行われており、戻り値の定義でvoid以外が使えなかったり、引数にNSArrayや独自クラスなどが使えなかったりしていた。
どうすれば使えるかという事についてメモ。
//ヘッダーファイル #import <Foundation/Foundation.h> @protocol testObjectDelegate; //この部分ではプロトコルの宣言だけで終了。 @interface testObject : NSObject @property (nonatomic,retain) id delegate; -(void)buttonPushed; @end @protocol testObjectDelegate <NSObject> //ここにプロトコルの定義を記載。 - (void)delegateMethod:(testObject*)testobject; //自分を引数としてデリゲートの利用先へ送る事が出来る。 @end
デリゲートの宣言はクラスのヘッダーファイルの先頭で、デリゲート定義はクラスのinterface定義後に定義。これで使えるようになる。
XCTestによるユニットテストにおけるテストメソッドの書き方
必ずメソッドの最初の文字は"test"とすること。
ex.testExample
こう書かないと反映されない。
マニュアルは現在存在しない?
古いものならあるっぽい。→ Xcodeユニットテスト ガイド
上記のマニュアルではユニットテスト結果マクロの書き方が"STxxxxx"となっているが、XCTestではSTの部分をXCTに置き換えると動く。
ex.XCTAssertTrue
Wordpressのソースをgitで管理するための準備
どういう管理が理想か?
pull requestという開発フローがトレンド
masterでごちゃごちゃ修正は行わない。綺麗な修正履歴を残す事を目的にmasterから派生させたブランチを作り、そこでmasterにマージできるまで開発を続ける。
ステージング環境を用意し、そこで十分に試してから派生ブランチにマージ、最終的にmasterにマージ。masterにマージされたら、自動で本番環境にデプロイされるようにしたい。
githubならできるけど、プライベートリポジトリを十分に活かしきるほど手を加える事はないだろう。
CocoaPods使用時にバージョン指定を誤りインストールできなかったのでメモ
podfileの記載
platform :iOS
だけだとデフォルトのiOS 4.3向けと認識される。
iOS7をターゲットとしているのならば、
platform :ios, '7.0'
と記載すること。
開発レシピ:Objective-Cのライブラリ管理ツール CocoaPodsさんに記法がキレイにまとめられている。
CocoaPodsの導入で参考になったサイト
CocoaPodsとは
ライブラリ管理ツール。Rubyのgem、Linuxのyumみたいなもの。
参考になったサイト
いろいろ見て回ったけど、これが個人的にわかりやすかった。
Objective-C - CocoaPodsでPodの利用&作成のメモ - Qiita [キータ]
導入後の注意点
XCode起動時に選択する時、プロジェクト名.xcworkspaceというファイルを選択すること。
gtm-oauth2を使ってinstagramのアクセストークンを取得する。
このサイトが分かりやすい
How to Use OAuth 2.0 with KinveyKit iOS Tutorial | Kinvey
注意点
リダイレクトサイトを入力する際、最後にスラッシュを入れる事。
○:http://goes-nowhere-does-nothing/
×:http://goes-nowhere-does-nothing
スラッシュを入れないとgtm-oauth2がリダイレクトをキャンセルしてくれない。
Twitterでoauth2接続することは可能か?
いろいろ調べたりやってみたりしたが、結局出来なかった。
各種URL(正しいのか不明)
tokenURL : https://api.twitter.com/oauth2/token
authorizationURL : https://api.twitter.com/oauth2/authorize
また、リダイレクトサイトはTwitterの場合、実在しないサイト登録不可の模様。 正しいサイトでも試してみたが結局エラーとなりアクセストークンを取得できなかった。