散歩しながら 〜〜アプリ開発〜〜

Mac mini 始めました [objective-c]

アプリのバージョンを設定/取得するには

アプリのバージョン情報をプロジェクトに設定するには

 

Info.plistファイルのBundle versionに値を設定します

 

Bundle versionは初期値「1.0」ですが任意の値に設定可能です

 

また、値を取得する際は

 

[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleVersion"];

 

となります。

 

地図アプリを起動する方法

アプリ内から地図をアプリを起動する方法です。

 

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]];

 

 

URLに何を入れるかで表示されるマップが変わります。

Google Map

  @"http://maps.google.com/mapsq=夢の国"

Apple Map

      @"http://maps.apple.com/mapsq=夢の国"

 

上記の場合、「夢の国」をキーワードにして地図表示してくれます。

 

それ以外のオプションはこちら

 

 

 

ターミナルコマンド

使いそうなターミナルのコマンドを記載します。

 

  • cd パス
    ディレクトリの移動(windowsのcdと一緒) 

  • diff
    ファイルを比較する

  • ifconfig
    windowsのipconfig

  • ls
    ディレクトリの中身を表示

  • mkdir ディレクトリ名
    ディレクトリを作成

  • man コマンド 
    コマンドの使い方(man コマンド)

  • rm [-r] ファイル名
    ファイルを消す
    -rはディレクトリ削除時に指定

 

 

バックグラウンドでアプリを動かさない方法

アプリを表示しているときのみ動かしたい場合の設定方法です。

 

 

①Info.plistに”Application does not run in background”という項目を追加します。

②Valueに”YES”を設定します。

 

上記の設定で、アプリを表示する場合は必ず最初(AppDelegate)から処理が始まります。

 

 

デバッグのみ表示されるログを出すには

デバッグ時のみ表示されるログを作成する方法です。

よく使われる方法ですが、便利なのでメモ、、。 

 

全体で読み込まれるファイルや「アプリ名-Prefix.pch」ファイルなどに以下のマクロを定義します。

 

// Debag Log
#ifdef DEBUG

#define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

#define DLog_M  NSLog(@"%s [Line %d]", __PRETTY_FUNCTION__,__LINE__)

#else

#define DLog(...)
#define DLog_M

#endif 

// Release Log 
#define RLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

 

 DLog,DLog_Mはデバッグ時のみ表示されるログ

RLogはリリース時も表示されるログになります。

 

使い方は以下のように。。

DLog(@"%@", @"テスト");

DLog_M;

RLog;

 

以上。。

 

 

実行スレッドを確認する方法

処理が行われているスレッドを確認したい場合、NSThreadクラスの以下のメソッドを実行する。

 

// メインスレッドで実行されているか

if([NSThread isMainThread]){

     NSLog(@"メインスレッド");

}else{

     NSLog(@"サブスレッド");

}

// スレッドの内容

NSLog(@"currentThread:%@", [NSThread currentThread]);

 

これで誰が処理しているかわかるはず・・・。

 

 

iPadでモーダルビューを表示する方法

さんぽです。。

 

iPadでモーダルビューを表示する場合、ちょっとだけiPhoneとは異なります。

 

UIViewController *vcModal = [[UIViewController alloc] init];

[vcModal setModalPresentationStyle:UIModalPresentationPageSheet];

[self presentViewController: viewController animated:YES completion: nil];

 

 二行目のsetModalPresentationStyleが異なる箇所です。

表示する画面領域を指定します。

 

・UIModalPresentationCurrentContext

 親と同じサイズ

 

・UIModalPresentationFullScreen

 フルスクリーン

 

・UIModalPresentationPageSheet

 幅が768ポイント、高さは今の高さ

 

・UIModalPresentationFormSheet

 540×620ポイント

 

となるそうです・・・。