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

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

ただいまの
回答率

90.34%

  • Swift

    8162questions

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

  • iOS 9

    215questions

    iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

Swift エラー Argument labels'(contentsOfURL:, options:, error:)' do not match any available overloads

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,996

hisui123

score 11

前提・実現したいこと

RSSリーダーアプリを作成しています。 
こちらを参考に進めていました。 
http://x1.inkenkun.com/archives/909

あらかた、ライブラリ等を入れて、 
ビルドしましたが、エラーが出ました。

発生している問題・エラーメッセージ

self.tableView.addPullToRefresh({ [weak self] in

の箇所で、以下のエラーメッセージ

   value of type 'UITableView' has no member 'addPullToRefresh'




②

var imageData :NSData = NSData(contentsOfURL: url!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)!
の箇所で、以下のエラーメッセージ

   Argument labels'(contentsOfURL:, options:, error:)' do not match any available overloads

該当のソースコード

import UIKit
import SwiftyJSON

class FeedTableViewController: UITableViewController {

    let parse = parseFeed()
    var link: String = String()
    var entries: [JSON] = []
    var parent: UIViewController = UIViewController()


    override func viewDidLoad() {
        super.viewDidLoad()
        SVProgressHUD.show()

        var nib:UINib = UINib(nibName: "CustomCell", bundle: nil)
        self.tableView.registerNib(nib, forCellReuseIdentifier: "Cell")


        parse.parse(self.link, completion: {(data,error) in

            self.entries = data!
            self.tableView.reloadData()
            SVProgressHUD.dismiss()
        })

        self.tableView.addPullToRefresh({ [weak self] in

            self?.tableView.reloadData()
            self?.tableView.stopPullToRefresh()
            })

    }





    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}

extension FeedTableViewController {

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.entries.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CustomCell

        cell.title.text = self.entries[indexPath.row]["title"].string

        var contents = ""
        var image = ""
        cell.contents.text = ""
        cell.img.image = UIImage(named:"Picture")!

        parse.getContents(self.entries[indexPath.row]["link"].string!, completion: { (data, error) in

            contents = data["content"] as! String
            cell.contents.text = contents

            image = data["image"] as! String

            if(image != ""){

                self.dispatch_async_global {
                    let url = NSURL(string: image)
                    var err: NSError?;
                    var imageData :NSData = NSData(contentsOfURL: url!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)!





                    self.dispatch_async_main {
                        cell.img.image = UIImage(data:imageData)!
                        cell.layoutSubviews()
                    }
                }

            }else{
                cell.img.image = UIImage(named:"Picture")!
            }
        })

        return cell

    }




    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 140
    }

    func dispatch_async_main(block: () -> ()) {
        dispatch_async(dispatch_get_main_queue(), block)
    }

    func dispatch_async_global(block: () -> ()) {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)
    }
}

extension FeedTableViewController {

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        let detailViewController = DetailViewController()
        detailViewController.entry = self.entries[indexPath.row].dictionary!
        parent.navigationController!.pushViewController(detailViewController , animated: true)

    }

}

試したこと

ネットで、エラーを検索しましたが、
未だ解決に至っていません。

よろしくお願いします。

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

より詳細な情報

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

checkベストアンサー

0

エラー処理の書き方も変更になっています。
参考URL: Error handling in Swift 2: try, catch, do and throw

do {
    let imageData = try NSData(contentsOfURL: url!, options: NSDataReadingOptions.DataReadingMappedIfSafe)

    self.dispatch_async_main {
        cell.img.image = UIImage(data:imageData)!
        cell.layoutSubviews()
    }
} catch {
    // エラー処理
}

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/15 13:24

    ありがとうございます!

    _Kentarou様のコードで、
    ② Argument labels'(contentsOfURL:, options:, error:)' do not match any available overloads

    のエラーが消えました。



    value of type 'UITableView' has no member 'addPullToRefresh'

    の解決方法、引き続き募集します。

    よろしくお願い致します。

    キャンセル

  • 2016/08/15 13:50

    完成したGithubのコードにはscrollViewのextensionとしてそちらのコードも載っています。

    検索しましたが、参考にしているサイト内にはこの説明はありませんでした。

    なのでGithubの完成したコードを参考に直してみてください。
    ※そちらでは①のコードはエラーになってません。



    キャンセル

  • 2016/08/15 14:15

    ありがとうございます。
    Githubのコードを参考に見てみます。

    キャンセル

0

②は解決したみたいなので①について。

PullToRefreshSwiftのExampleを見た感じ、メソッド名が addPullToRefresh から addPullRefreshHandler に変更されている気がします。

下のように書き換えてみてはどうでしょうか。

self.tableView.addPullRefreshHandler({ [weak self] in

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/15 14:09

    ご回答ありがとうございます!



    self.tableView.addPullRefreshHandler({ [weak self] in


    self?.tableView.reloadData()
    self?.tableView.stopPullRefreshEver()
    })


    ご指摘通りに直した所、
    エラーが消えました。

    ありがとうございます。

    キャンセル

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

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

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

  • Swift

    8162questions

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

  • iOS 9

    215questions

    iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。