2015-04-29 34 views
0

林學習迅速,現在,其具有下列問題 請幫助..不能調用「functionName」類型的斯威夫特Xcode中的參數列表「([(nameOfClass)])」 6.3.1

我有3個類 - TableViewController BroadcastModel BroadcastRequest 我得到以下錯誤(錯誤的行標有註釋) 不能援引「requestFinished」有型「([(BroadcastModel)])」

import UIKit 

public class TableViewController: UITableViewController { 

var broadcasts = [BroadcastModel]() 
//MARK: ViewControllerLifecycle 
override public func viewDidLoad() { 

    super.viewDidLoad() 
    //maybe will use the 2d array for sections of broadcasts.. 
    BroadcastRequest().requestNewBroadcasts() 

} 

public func requestFinished(requestedBroadcasts: [BroadcastModel]) { 
    self.broadcasts = requestedBroadcasts \* HERE IS THE ERROR *\ 
    self.tableView.reloadData() 
} 

public class BroadcastRequest { 

func requestNewBroadcasts() { 
    var broadcasts = [BroadcastModel]() 
    ..... 
    ..... 
    broadcasts.append(broadcast) 
    TableViewController.requestFinished(broadcasts) 
} 
} 

public class BroadcastModel: NSObject, Printable { 
let id: String 
let broadcastURL: String 
... 
... 
override public var description: String { 
    return "ID: \(id), URL: \(broadcastURL) ....." 
} 

init(...) { 
... 
} 
} 
參數列表

回答

1

由於您使用:

TableViewController.requestFinished(broadcasts) 

你應該定義函數作爲一類功能:

class func requestFinished(requestedBroadcasts: [BroadcastModel]) { 
    self.broadcasts = requestedBroadcasts \* HERE IS THE ERROR *\ 
    self.tableView.reloadData() 
} 

建議您找出類本身和類實例

之間的功能和一流的功能與差異之間的區別

如果您想對某個類實例執行某些操作,則必須具有對該類的引用,而不是僅指定類名稱。

+0

試過。我現在得到以下錯誤 - 1)'TableViewController.Type'沒有名爲'broadcasts'的成員 2)不能調用'reloadData'沒有參數 – user2993422

+0

@ user2993422看起來你的代碼的邏輯不正確,如果你做我所說的,你不能在課堂上使用自己的功能 – duan

+0

忘記我之前說過的話。我建議你刪除'BroadcastRequest'和'BroadcastModel'並將'requestNewBroadcasts'函數轉換成類'TableViewController' – duan

相關問題