В принципе, он передает массив в порядке. Это просто, когда вы пытаетесь использовать перечисляемый массив как tablerows, он говорит, что nil найден.Как заполнить строки таблицы, используя массив [String], отправленный с iPhone через Watch Connectivity?
ТЕЛЕФОН
import UIKit
import WatchConnectivity
class ViewController: UIViewController, WCSessionDelegate {
@IBOutlet weak var sendButton: UIButton!
var watchSession: WCSession?
var arrayCustom = ["thing1", "thing2"]
override func viewDidLoad() {
super.viewDidLoad()
if(WCSession.isSupported()) {
watchSession = WCSession.defaultSession()
watchSession?.delegate = self
watchSession?.activateSession()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func sendArray(sender: AnyObject) {
sendToWatch()
}
private func sendToWatch() {
do {
let applicationDict = ["Array1": arrayCustom]
try WCSession.defaultSession().updateApplicationContext(applicationDict)
}
catch {
print(error)
}
}
}
WATCHKIT
private func loadThCust() {
if (WCSession.isSupported()) {
watchSession = WCSession.defaultSession()
watchSession.delegate = self;
watchSession.activateSession()]
}
func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {
dispatch_async(dispatch_get_main_queue()) {() -> Void in
if let retrievedArray1 = applicationContext["Array1"] as? [String] {
self.custArray = retrievedArray1
print(self.custArray)
}
for (index, thName) in self.custArray.enumerate() {
let row2 = self.choiceTable.rowControllerAtIndex(index) as! ChoiceTableRowController
row2.choiceLabel.setText(thName)
}
}
}
Моя проблема я получаю эту консольную выход + ошибку всякий раз, когда я пытаюсь и загрузить TableView:
["thing1", "thing2"]
2016-02-24 03:21:25.912 WristaRoo WatchKit Extension[9401:243561] Error - attempt to ask for row 0. Valid range is 0..0
fatal error: unexpectedly found nil while unwrapping an Optional value
Кто-нибудь есть любая идея, почему разворачиваемая стоимость по-прежнему равна нулю? Я надеялся, что как только я его установлю и увижу, что в массиве [String] есть значения, он может перечислить его, но кажется, что они просто невидимы.
ugh, спасибо за tis - кодирование в 3 утра - это не всегда лучший вариант. это tok мне все 5 минут, чтобы добавить в 'self.choiceTable.setNumberOfRows (self.custArray.count, withRowType:« ChoiceTableRowController »)' , чтобы заставить его работать – conedmiro