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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

1回答

1685閲覧

urlを指定して、そこからデータをダウンロードしたい

afuroda

総合スコア36

Swift

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/12/18 14:50

###前提・実現したいこと
NSUrlを指定して、そこからテキストデータをダウンロードしたいんですが,上手くいかずに困っています。
###発生している問題・エラーメッセージ
サーバー上のデータの受信ができない
アプリを起動すると”ダウンロードが失敗しました”とでます

###該当のソースコード

swift

1import UIKit 2 3class ViewController: UIViewController,NSURLSessionDownloadDelegate{ 4 var str = NSString() 5 var button = UIButton() 6 var text = UITextView() 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 button.frame = CGRectMake(0, 0, 300, 100) 11 text.frame = CGRectMake(0, 0, 300, 300) 12 13 text.layer.position = CGPoint(x: self.view.frame.width/2, y: 300) 14 button.layer.position = CGPoint(x: self.view.frame.width/2, y: 100) 15 16 text.backgroundColor = UIColor.magentaColor() 17 button.backgroundColor = UIColor.cyanColor() 18 19 self.view.addSubview(text) 20 self.view.addSubview(button) 21 22 button.addTarget(self, action: #selector(self.btnpush), forControlEvents: .TouchUpInside) 23 super.viewDidLoad() 24 // 通信のコンフィグを用意. 25 let myConfig:NSURLSessionConfiguration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("backgroundSession") 26 27 // Sessionを作成する. 28 let mySession:NSURLSession = NSURLSession(configuration: myConfig, delegate: self, delegateQueue: nil) 29 30 // ダウンロード先のURLからリクエストを生成. 31 let myURL:NSURL = NSURL(string: "http://npaka/iphone/test.txt")! 32 let myRequest:NSURLRequest = NSURLRequest(URL: myURL) 33 34 // ダウンロードタスクを生成. 35 let myTask:NSURLSessionDownloadTask = mySession.downloadTaskWithRequest(myRequest) 36 37 // タスクを実行. 38 myTask.resume() 39 } 40 41 /* 42 ダウンロード終了時に呼び出されるデリゲート. 43 */ 44 func btnpush(){ 45 _ = str.dataUsingEncoding(NSUTF8StringEncoding) 46 text.text = str as String 47 48 } 49 50 func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) { 51 52 do{ 53 _ = try NSData(contentsOfURL: location,options: NSDataReadingOptions.DataReadingMappedAlways)} 54 catch _ as NSError { 55 print("error") 56 } 57 58 } 59 60 /* 61 タスク終了時に呼び出されるデリゲート. 62 */ 63 func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?) { 64 65 if error == nil { 66 print("ダウンロードが完了しました") 67 } else { 68 print("ダウンロードが失敗しました") 69 } 70 71 72 } 73 override func didReceiveMemoryWarning() { 74 super.didReceiveMemoryWarning() 75 76 } 77}

###試したこと
ネットで調べてエラーを消すことはできたんですがデータを受信することができません

###補足情報(言語/FW/ツール等のバージョンなど)
swift2です。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fromageblanc

2016/12/18 17:59

print("ダウンロードが失敗しました")の後に、print(error)って入れてみたらどうですか
guest

回答1

0

無線LANはセグメントが違う
VMのサーバーでホストオンリーとなっている
認証がかかっているなどかと。

エラーメッセージは握りつぶした独自設定ので聞かないでください。

NSErrorの中身を確認してください

投稿2016/12/18 23:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問