LoginSignup
118
116

More than 5 years have passed since last update.

SwiftとAFNetworkingの簡単サンプル

Last updated at Posted at 2014-10-13

rbenvrubyやらを管理するようになって、改めてcocoapodsのインストールから始めた覚え書き。

※2015/01更新

本記事で動作しない方はこちらの記事へ

準備

開発環境

PC: MacOS X 10.9.4
Xcode: Version 6.1
Ruby: 2.1.3
Rails: 4.1.6

Cocoapodsのインストール

$ rbenv exec gem install cocoapods

プロジェクトディレクトリへ移動

$ cd /path/to/your/xcode/project

Podfileの作成

$ vi Podfile

platform :ios, "7.0"
pod 'AFNetworking', '~> 2.0'
pod "AFNetworkActivityLogger", "~> 2.0"

Cocoapodsのインストール

$ pod setup
Setting up CocoaPods master repo
Updating ce725a5..4bf3048

Fast-forward

  ・・・中略・・・

From https://github.com/CocoaPods/Specs

   ce725a5..4bf3048  master     -> origin/master
Setup completed

外部ライブラリ(AFNetworking等)のインストール

$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworkActivityLogger (2.0.3)
Using AFNetworking (2.4.1)
Generating Pods project
Integrating client project

[!] The use of implicit sources has been deprecated. To continue using all of the sources currently on your machine, add the following to the top of your Podfile:

    source 'https://github.com/CocoaPods/Specs.git'

プロジェクトを開く

Xcodeを起動して、.xcodeprojではなく、.xcworkspaceのプロジェクトファイルを開く。

スクリーンショット 2014-10-13 23.41.40.png

コーディング

ロギング設定

AppDelegate.swift
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        //ロギング開始
        AFNetworkActivityLogger.sharedLogger().level = .AFLoggerLevelDebug
        AFNetworkActivityLogger.sharedLogger().startLogging()

        return true
    }
}

通信処理

FirstViewController.swift
class FirstViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        NSLog("AFNetwork Starts First Page!!!")

        //リクエスト
        let manager:AFHTTPRequestOperationManager = AFHTTPRequestOperationManager()
        let serializer:AFJSONRequestSerializer = AFJSONRequestSerializer()
        manager.requestSerializer = serializer
        manager.GET("http://localhost:3000/members.json", parameters: nil,
            success: {(operation: AFHTTPRequestOperation!, responsobject: AnyObject!) in
                        println("Success!!")
                        println(responsobject)
                     },
            failure: {(operation: AFHTTPRequestOperation!, error: NSError!) in
                        println("Error!!")
                     }
        )

    }
}

通信ログ

2014-10-13 23:53:19.436 CocoapadSample[30736:177940] AFNetwork Starts First Page!!!
2014-10-13 23:53:19.563 CocoapadSample[30736:177940] GET 'http://localhost:3000/members.json': {
    "Accept-Language" = "en;q=1";
    "User-Agent" = "CocoapadSample/1 (iPhone Simulator; iOS 8.1; Scale/2.00)";
} (null)
2014-10-13 23:53:19.564 CocoapadSample[30736:177940] 200 'http://localhost:3000/members.json' [0.0011 s]: {
    "Cache-Control" = "max-age=0, private, must-revalidate";
    Connection = "Keep-Alive";
    "Content-Length" = 80;
    "Content-Type" = "application/json; charset=utf-8";
    Date = "Mon, 13 Oct 2014 14:53:19 GMT";
    Etag = "\"e25874e5c93e096f40461ae7ea30c135\"";
    Server = "WEBrick/1.3.1 (Ruby/2.1.3/2014-09-19)";
    "X-Content-Type-Options" = nosniff;
    "X-Frame-Options" = SAMEORIGIN;
    "X-Request-Id" = "13c2e6cf-9b4d-40b7-8ff6-e688527ce991";
    "X-Runtime" = "0.023255";
    "X-Xss-Protection" = "1; mode=block";
} [{"id":1,"name":"ほげほげ","age":99,"url":"http://localhost:3000/members/1.json"}]
Success!!
(
        {
        age = 99;
        id = 1;
        name = "\U7530\U5cf6\U7530\U5cf6";
        url = "http://localhost:3000/members/1.json";
    }
)

通信できた。

Lovely Swift!!!

118
116
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
118
116