Objective-C
iOS
note

iOS/Objective-C★Note | スタディノート随時更新!

More than 5 years have passed since last update.

勉強した事をつらつらと書き殴ります。

iPhone
photo by MattsMacintosh

ワイヤーフレーム

ビューコントローラ

ライフサイクル

通常

  • initWithNibName / initWithCoder / init
  • awakeFromNib
  • loadView
  • viewDidLoad
  • viewWillAppear
  • viewWillDisappear
  • viewDidDisappear
  • dealloc

メモリ不足

  • didReceiveMemoryWarning
  • viewDidUnload

モデル

モデルオブジェクトクラスとそれを管理する、モデルマネージャクラスを用意するパターンがある。
詳細は、iOS開発におけるパターンによるオートマティズムを参照。

モデルオブジェクトクラス

モデルオブジェクトクラスの役割は以下。

  • 情報の保持
  • IDの生成
  • アクセサの提供
  • 保存と読み込み

モデルマネージャクラス

モデルマネージャクラスの役割は以下。

  • モデルマネージャの参照の取得
  • モデルオブジェクトの集合の管理
  • モデルオブジェクトの操作
  • モデルオブジェクトの集合の保存、読み込み

メモリ管理

公式

参考

データ永続化 - CoreData

公式

参考

mogenerator

MagicalRecord

アニメーション

URLスキーム

参考

位置情報

ネットワーク

AFNetworking

XCode

Git

.gitignore

.gitignore
build/*
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
*.xcworkspace
!default.xcworkspace
xcuserdata
profile
*.moved-aside
.DS_Store
UserInterfaceState.xcuserstate

広告

iAD

Chartboost

InMobi

アクセス解析

Google Analytics for iOS

TestFlight

リモートロギング

NSLogと同様のメソッドシグネチャを持つTFLogというメソッドが提供されている。

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

アプリ登録/審査

デバッグ

AppDelegate.m
void uncaughtExceptionHandler(NSException *exception) {
    NSLog(@"CRASH: %@", exception);
    NSLog(@"Stack Trace: %@", [exception callStackSymbols]);
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);

    return YES;
}

Tips

RunScript
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"

コミュニティ

iphone_dev_jp

書籍