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

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回答

2374閲覧

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 05:13

###前提・実現したいこと
NSUrlを指定して、そこからテキストデータをダウンロードしたいんですが、Cannot assign to immutable expression of type 'NSData.Type'というエラーが出て困っています。
###発生している問題・エラーメッセージ

Cannot assign to immutable expression of type 'NSData.Type'

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

swift

1import UIKit 2 3class ViewController: UIViewController,NSURLSessionDownloadDelegate{ 4 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://150.15.97.228/~yamaguchi/data1")! 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 46 } 47 func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) { 48 49 do{ 50 var data = try NSData = NSData(contentsOfURL: location, options: NSDataReadingOptions.DataReadingMappedAlways, error: nil)!} 51 catch _ as NSError { 52 print("error") 53 54 } 55 } 56 57 /* 58 タスク終了時に呼び出されるデリゲート. 59 */ 60 func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?) { 61 62 if error == nil { 63 print("ダウンロードが完了しました") 64 } else { 65 print("ダウンロードが失敗しました") 66 } 67 68 } 69 70 override func didReceiveMemoryWarning() { 71 super.didReceiveMemoryWarning() 72 73 } 74}

###試したこと
ネットで調べてみましたが、解決しませんでした。

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

文法と引数に誤りがあります。↓こうしてください。

swift

1//swift 2.x 2 3 let data = try NSData(contentsOfURL: location,options: NSDataReadingOptions.DataReadingMappedAlways)

投稿2016/12/18 07:57

fromageblanc

総合スコア2724

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

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

afuroda

2016/12/18 14:51

ありがとうございます。おかげさまでエラーを消すことができましたm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問