2016-05-25 6 views
0

この質問は尋ねられましたが、Swiftコンテキストでは質問されていません。私はこのようなクエリを持つOS Xスウィフトアプリ使用して取得していますSocrataデータセットがあります。日付が日付よりも大きいSocrateデータセットクエリのURLを作成します。

https://data.cityofwestsacramento.org/resource/wdus-j2nt.json?$where=date_applied>=2016-05-01

を問題は「$ = date_applied> = 2016年5月1日」のエンコーディングで表示されますSocrataは明らかにエンコードされた日付部分が気に入らない。

Swiftでこのクエリを正しく渡すためにNSURLを構築する方法に関するアイデアはありますか?

答えて

1

https://github.com/socrata/soda-swiftのコードを使用して解決策を見つけました。 licenseTimeFrameは、振り返る日数だけです:

let dateCuttoff = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -licenseTimeFrame,toDate: NSDate(), options: NSCalendarOptions(rawValue: 0)) 
    let unitFlags: NSCalendarUnit = [.Hour, .Day, .Month, .Year] 
    let components = NSCalendar.currentCalendar().components(unitFlags, fromDate: dateCuttoff!) 
    let dateString = "\(components.year)" + "-" + "\(components.month)" + "-" + "\(components.day)" 
    let query = "date_applied>'\(dateString)'" 
    let sk = query.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())! as String 
    let url = "https://data.cityofwestsacramento.org/resource/wdus-j2nt.json?$where=\(sk)" 
    let urlToSend = NSURL(string: url) 
    let request = NSMutableURLRequest(URL: urlToSend!); 
    request.addValue("application/json", forHTTPHeaderField:"Accept") 
    request.HTTPMethod = "GET" 
    request.addValue("[myapikey]", forHTTPHeaderField: "X-App-Token") 
    // Execute HTTP Request 
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
     data, response, error in } 
    // do processing here of return data 
    task.resume() 
+0

あなたはすべて設定されているような音ですか?申し訳ありませんが、私はすぐにこれを見ませんでした。 – chrismetcalf

+0

はい - それは今のところそれでしょう – user773881

関連する問題