2015-07-03 79 views
-1

我想從另一個視圖控制器傳遞信息到下面的代碼,並將信息放入一個數組。不過,無論我如何嘗試插入它,我總是會收到錯誤。有什麼建議嗎?'(Int) - >字符串'不能轉換爲'字符串'在一個數組(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")] 
+0

您的星期一是一個String數組,並且您正在傳遞(「8:30-9:30」,blockOutput(1))作爲不是字符串的元素。 – Amit89

回答

0
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")] 
0

我認爲問題是,你想叫blockOutput(1)屬性的內部。您需要將其移至某個方法。

0
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")]