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

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

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

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

Swift

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

Q&A

解決済

2回答

3728閲覧

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

hisui123

総合スコア21

iOS 9

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

Swift

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

0グッド

0クリップ

投稿2016/08/15 03:52

###前提・実現したいこと

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

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

swift

1 2 3import UIKit 4import SwiftyJSON 5 6class FeedTableViewController: UITableViewController { 7 8 let parse = parseFeed() 9 var link: String = String() 10 var entries: [JSON] = [] 11 var parent: UIViewController = UIViewController() 12 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 SVProgressHUD.show() 17 18 var nib:UINib = UINib(nibName: "CustomCell", bundle: nil) 19 self.tableView.registerNib(nib, forCellReuseIdentifier: "Cell") 20 21 22 parse.parse(self.link, completion: {(data,error) in 23 24 self.entries = data! 25 self.tableView.reloadData() 26 SVProgressHUD.dismiss() 27 }) 28 29 self.tableView.addPullToRefresh({ [weak self] in 30 31 self?.tableView.reloadData() 32 self?.tableView.stopPullToRefresh() 33 }) 34 35 } 36 37 38 39 40 41 override func didReceiveMemoryWarning() { 42 super.didReceiveMemoryWarning() 43 } 44 45} 46 47extension FeedTableViewController { 48 49 override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 50 return self.entries.count 51 } 52 53 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 54 55 let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CustomCell 56 57 cell.title.text = self.entries[indexPath.row]["title"].string 58 59 var contents = "" 60 var image = "" 61 cell.contents.text = "" 62 cell.img.image = UIImage(named:"Picture")! 63 64 parse.getContents(self.entries[indexPath.row]["link"].string!, completion: { (data, error) in 65 66 contents = data["content"] as! String 67 cell.contents.text = contents 68 69 image = data["image"] as! String 70 71 if(image != ""){ 72 73 self.dispatch_async_global { 74 let url = NSURL(string: image) 75 var err: NSError?; 76 var imageData :NSData = NSData(contentsOfURL: url!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)! 77 78 79 80 81 82 self.dispatch_async_main { 83 cell.img.image = UIImage(data:imageData)! 84 cell.layoutSubviews() 85 } 86 } 87 88 }else{ 89 cell.img.image = UIImage(named:"Picture")! 90 } 91 }) 92 93 return cell 94 95 } 96 97 98 99 100 override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 101 return 140 102 } 103 104 func dispatch_async_main(block: () -> ()) { 105 dispatch_async(dispatch_get_main_queue(), block) 106 } 107 108 func dispatch_async_global(block: () -> ()) { 109 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block) 110 } 111} 112 113extension FeedTableViewController { 114 115 override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 116 117 let detailViewController = DetailViewController() 118 detailViewController.entry = self.entries[indexPath.row].dictionary! 119 parent.navigationController!.pushViewController(detailViewController , animated: true) 120 121 } 122 123}

###試したこと

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

よろしくお願いします。

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

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

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

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

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

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

guest

回答2

0

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

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

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

Swift

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

投稿2016/08/15 04:48

u39ueda

総合スコア950

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

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

hisui123

2016/08/15 05:09

ご回答ありがとうございます! self.tableView.addPullRefreshHandler({ [weak self] in self?.tableView.reloadData() self?.tableView.stopPullRefreshEver() }) ご指摘通りに直した所、 エラーが消えました。 ありがとうございます。
guest

0

ベストアンサー

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

swift

1do { 2 let imageData = try NSData(contentsOfURL: url!, options: NSDataReadingOptions.DataReadingMappedIfSafe) 3 4 self.dispatch_async_main { 5 cell.img.image = UIImage(data:imageData)! 6 cell.layoutSubviews() 7 } 8} catch { 9 // エラー処理 10}

投稿2016/08/15 04:05

編集2016/08/15 04:07
_Kentarou

総合スコア8490

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

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

hisui123

2016/08/15 04:24

ありがとうございます! _Kentarou様のコードで、 ② Argument labels'(contentsOfURL:, options:, error:)' do not match any available overloads のエラーが消えました。 ① value of type 'UITableView' has no member 'addPullToRefresh' の解決方法、引き続き募集します。 よろしくお願い致します。
_Kentarou

2016/08/15 04:50

完成したGithubのコードにはscrollViewのextensionとしてそちらのコードも載っています。 検索しましたが、参考にしているサイト内にはこの説明はありませんでした。 なのでGithubの完成したコードを参考に直してみてください。 ※そちらでは①のコードはエラーになってません。
hisui123

2016/08/15 05:15

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問