Edited at

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


書籍