FrontPage

CocoaPods?

インストール

ライブラリ管理にCocoaPods?を入れる。

sudo gem install cocoapods

Podfileの書き方

とあるプロジェクトのPodfileの一部。

# プラットフォームはiOS, バージョン5.0以降
platform :ios, '5.0'

# SDWebImage 3.2以降をインストール 
pod 'SDWebImage', '~> 3.2'

# SVProgressHUDの最新版をインストール
pod 'SVProgressHUD'

# ターゲットがtestかつexclusive=>trueの場合(つまりtest.appの場合)、このセクションの中のライブラリに依存する
target :test, :exclusive => true do
    pod 'OCMock'
    pod 'OHHTTPStubs'
    pod 'GHUnitIOS'
end

マクロ

ログ

DLog, ALogというマクロを設定して出力を切り替え。

// Logging for DEBUG
#ifdef DEBUG
#define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define DLog(...)
#endif

// Logging for ALWAYS
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

元ネタ: http://d.hatena.ne.jp/k2_k_hei/20120511/1336750473

ビュー

xibからビューを作る

  • UIViewを継承したクラスを作成
  • xibを作成
  • xibのビュークラスをUIViewの子クラスに指定
  • コントローラ等でUINibから取得
BikeDetailView *view = [[[UINib nibWithNibName:@"BikeDetailView" bundle:nil] instantiateWithOwner:nil options:nil] objectAtIndex:0];

通信処理

AFNetworking

ステータスバーのくるくる

ステータスバーのくるくるはAFNetworkActivityIndicatorManager?でよしなにやってくれる。 AFHTTPClientのサブクラスの初期化辺りに埋め込んでおくとヨサゲ。

#import "AFNetworkActivityIndicatorManager.h"

- (id)init 
{
    AFHTTPClient *client = [AFHTTPClient initWithBaseURL:BASEURL];
    [[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES];
}

あとはAFHTTPClientが通信状態になるとくるくるを出して、終わると止めてくれる。

-(void)request
{
    // ネットワークインジケータが勝手に出てくれる
    [client getPath:path
         parameters:nil
            success:^(AFHTTPRequestOperation *operation, id response) {} // ここでインジケータ止まる
            failure:^(AFHTTPRequestOperation *operation, NSError *error) {}];  // ここでインジケータ止まる
}

AFOAuth2Client

WebAPIの起点となるエンドポイントを渡しつつ初期化

clientWithBaseURLコンストラクタを利用する。

WebAPIの起点となるNSURLオブジェクト、client id, client secretを引数に取る。

NSURL *url = [NSURL URLWithString:@"http://example.com/api/"];
NSString *clientId = @"xxxx";
NSString *clientSecret = @"xxxx";

AFOAuth2Client *client = [AFOAuth2Client clientWithBaseURL:url clientId:clientId secret:apiSecret];

AFOAuth2Clientを使用して通信

-(void)request
{
    // http://example.com/api/shops/にGETリクエスト
    [client getPath:@"shops/"
         parameters:nil
            success:^(AFHTTPRequestOperation *operation, id response) {
                // responseを調理
                (NSData *)response;
            }
            failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                NSLog(@"responseError: %@", error);
            }];
}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-10 (火) 00:14:11 (1444d)