質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Swift

    7021questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • iOS

    3897questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

swift データベースにPOSTしループさせるプログラム

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 636

namatamago

score 7

サーバーにデータをPOSTし、それを1秒ごとに繰り返すプログラムを作成していますが、コメントアウトしてある部分をどのようにかけば良いのかわかりません。

下記にプログラムを記載します。

import UIKit

class ViewController: UIViewController,NSURLSessionDelegate,NSURLSessionDataDelegate{
    
    var timer: NSTimer!
    var cnt: Float = 0
    
    override func viewDidLoad(){
        
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        // 通信用のConfigを生成.
        let myConfig:NSURLSessionConfiguration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("backgroundTask")
        // Sessionを生成.
        var mySession:NSURLSession = NSURLSession(configuration: myConfig, delegate: self, delegateQueue: nil)
        // 通信先のURLを生成.
        let myUrl:NSURL = NSURL(string: "URL")!
        
        // POST用のリクエストを生成.
        let myRequest:NSMutableURLRequest = NSMutableURLRequest(URL: myUrl)
        // POSTのメソッドを指定.
        myRequest.HTTPMethod = "POST"
        
        // 送信するデータを生成・リクエストにセット.
        let str:NSString = "送りたいデータ"
        let myData:NSData = str.dataUsingEncoding(NSUTF8StringEncoding)!
        myRequest.HTTPBody = myData
        
        // タスクの生成.
        let myTask:NSURLSessionDataTask = mySession.dataTaskWithRequest(myRequest)
        
        // タスクの実行.
        myTask.resume()
        
        let time:NSTimer = NSTimer.scheduledTimerWithTimeInterval(1,target:self,selector:Selector("onUpdate"),userInfo: nil, repeats: true)
    }
    
    func onUpdate(timer : NSTimer) {
        
        //ここの部分です。myTask.resume()の処理をループさせたいです。
        
    }
    
    
    //通信が終了したときに呼び出されるデリゲート.
    func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) {
        
        // 帰ってきたデータを文字列に変換.
        var myData:NSString = NSString(data: data, encoding: NSUTF8StringEncoding)!
        
        // バックグラウンドだとUIの処理が出来ないので、メインスレッドでUIの処理を行わせる.
        dispatch_async(dispatch_get_main_queue(), {
            self.myText.text = myData as String
        })
    }
        
    
    @IBOutlet weak var myText: UILabel!
    func URLSessionDidFinishEventsForBackgroundURLSession(session: NSURLSession) {
        println("URLSessionDidFinishEventsForBackgroundURLSession")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

mySessionをインスタンス変数にすれば、onUpdate()関数の中からも利用できます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    中学2年生のswift初心者

    はじめまして。 swiftでwebブラウザアプリを作っています。 ですが、なぜかエラーが出ます。 import UIKit class ViewController: UIVie

  • 解決済

    Swiftでの動画ダウンロード

    お世話になります。Swift入門者です! AppStoreでよく見かけるYoutubeなどの動画をダウンロードしてモバイルに保存するアプリにつきまして、どういった仕組みなんだろう

  • 解決済

    Swiftに関しての質問

    皆様、質問がございます。よろしくお願い申し上げます。 やりたいこと Web APIを用いて、HTTPリクエストでjsonデータを取得すること、 けれどbuildエラーが生じていて

  • 解決済

    objective-cでウェブ上のテキストを取得したい

    先ほど似た質問したのですが、新たに問題が発生し、調べまくってもう1歩のところまでいくんですがエラーでうまくいきません。 そこで、アドバイスをいただきたいと思って再度質問させていた

  • 解決済

    処理が終了するのを待ってから戻り値を返却したい

    お世話になっております。 関数内でサーバーと通信し、処理結果を返却する関数を作りたいのですが、 通信処理が終了する前に戻り値が返却されてしまいます。(宣言時の値が返却される)

  • 解決済

    【swift】サーバーに置いてある画像をSNSシェアしたい

    swiftを勉強中の者です。 タイトルの通り、サーバーに置いてる画像をSNSでシェアできるように実装したいと考えてます。 Socialフレームワークを使ってTwitte

  • 解決済

    swiftにて画像アップロード(サーバ上へ)

    以前に質問した内容に近いのですが、またご教授いただければ幸いです。 下記のサイトを参考にしながら、ファイルのアップロードをしたいと考えております。 【Swift】Swift

  • 解決済

    Swift エラー NSURLSession

    前提・実現したいこと プログラム初心者です。 「swiftではじめる iphoneアプリ開発の教科書 【swift 2&xcode 7対応】」という本のChapter5の「住所

同じタグがついた質問を見る

  • Swift

    7021questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • iOS

    3897questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。