'(Int)->String' 不可转换为数组中的'String' (Swift)



我正试图将信息从另一个视图控制器传递到下面代码的视图控制器中,并将信息放入数组中。然而,无论我如何插入,我总是会遇到错误。有什么建议吗?

class ViewController: UIViewController, UITableViewDataSource, UIAlertViewDelegate{
var user = PFUser()
@IBAction func logoutButton(sender: AnyObject) {
    PFUser.logOut()
    if (PFUser.currentUser() != nil) {
        var alert = UIAlertView(title: "Something Went Wrong", message:"Could not logout. Please try again later." , delegate: self, cancelButtonTitle: "Okay")
        alert.show()
    }
}
@IBOutlet weak var schedule: UIImageView!
var recievedBlocks = [String]()
func blockOutput (block: Int)->String{
    if (block == 1){
        return "(self.recievedBlocks[0])"
    }else if(block == 2){
        return "(self.recievedBlocks[1])"
    }else if(block == 3){
        return "(self.recievedBlocks[2])"
    }else if(block == 4){
        return "(self.recievedBlocks[3])"
    }else if(block == 5){
        return "(self.recievedBlocks[4])"
    }else if(block == 6){
        return "(self.recievedBlocks[5])"
    }else if(block == 7){
        return "(self.recievedBlocks[6])"
    }else if(block == 8){
        return "(self.recievedBlocks[7])"
    }else{
        return "(self.recievedBlocks[8])"
    }
}
var monday = [
    ("8:30-9:30",blockOutput(1)),
    ("9:34-9:48","Advisory"),
    ("9:52-10:52","Block 2"),
    ("10:56-11:56","Block 3"),
    ("11:56-12:36","Lunch"),
    ("12:40-1:39","Block 4"),
    ("1:43-2:42","Block 5"),
    ("2:46-3:45","Block 6")]
class ViewController: UIViewController, UITableViewDataSource, UIAlertViewDelegate{
var user = PFUser()
@IBAction func logoutButton(sender: AnyObject) {
    PFUser.logOut()
    if (PFUser.currentUser() != nil) {
        var alert = UIAlertView(title: "Something Went Wrong", message:"Could not logout. Please try again later." , delegate: self, cancelButtonTitle: "Okay")
        alert.show()
    }
}
@IBOutlet weak var schedule: UIImageView!
var recievedBlocks = [String]()
func blockOutput (block: Int)->String{
    if (block == 1){
        return self.recievedBlocks[0]
    }else if(block == 2){
        return self.recievedBlocks[1]
    }else if(block == 3){
        return self.recievedBlocks[2]
    }else if(block == 4){
        return self.recievedBlocks[3]
    }else if(block == 5){
        return self.recievedBlocks[4]
    }else if(block == 6){
        return self.recievedBlocks[5]
    }else if(block == 7){
        return self.recievedBlocks[6]
    }else if(block == 8){
        return self.recievedBlocks[7]
    }else{
        return self.recievedBlocks[8]
    }
}
var monday:(String,String)[] = [
    ("8:30-9:30",blockOutput(1)),
    ("9:34-9:48","Advisory"),
    ("9:52-10:52","Block 2"),
    ("10:56-11:56","Block 3"),
    ("11:56-12:36","Lunch"),
    ("12:40-1:39","Block 4"),
    ("1:43-2:42","Block 5"),
    ("2:46-3:45","Block 6")]

我认为问题在于您试图在属性内部调用blockOutput(1)。您需要将其移动到一个方法。

var recievedBlocks :[String] = ["Block 1","Block 2","Block 3","Advisory4","Advisory5"]
var monday:[(String,String)] = []
func blockOutput(block: Int) -> String {
    return recievedBlocks.count > block ? recievedBlocks[block] : ""
}
monday = [("8:30-9:30", blockOutput(1)),("9:34-9:48","Advisory"),("9:52-10:52","Block 2"),("10:56-11:56","Block 3"),("11:56-12:36","Lunch"), ("12:40-1:39","Block 4"), ("1:43-2:42","Block 5"), ("2:46-3:45","Block 6")]

最新更新