所以基本上我試圖在AppDelegate.swift中運行Refresh(位於ViewController.swift)函數。在搜索了5個小時的更好的部分後,我無法弄清楚爲什麼這不起作用。 這裏是我的功能:如何從appdelegate中的viewcontroller調用函數? (Swift)
func Refresh(){
if(Count==0 && QuickActionChecker==true){
Previous.text=String(TipArray[CountCurrent])
Current.text=String(TipArray[CountCurrent])
Deliveries.text="\(Runs)"
}
if(Count>0 && QuickActionChecker==true){
Previous.text=String(TipArray[CountCurrent-1])
Current.text=String(Total)
Deliveries.text="\(Runs)"
}
}
在我Appdelegate.swift我已經將其設置爲主要初始化的ViewController:
let Main = ViewController()
和這裏就是我試圖從運行功能(力觸按主屏幕快速行動):
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
if shortcutItem.type == "com.Sicarix.Ticket.Add5"{
if(CountCurrent==0){
TipArray.append(5)
Count=Count+1
CountCurrent=CountCurrent+2
Total=TipArray.reduce(0) {$0+$1}
Runs=Runs+1
QuickActionChecker=true
Main.Refresh()
}
else{
TipArray.append(5)
Count=Count+1
CountCurrent=CountCurrent+1
Total=TipArray.reduce(0) {$0+$1}
Runs=Runs+1
QuickActionChecker=true
Main.Refresh()
}
}
}
然而,當我嘗試使用它的快捷方式打開應用到白色屏幕和在那裏停留。控制檯吐出:
fatal error: unexpectedly found nil while unwrapping an Optional value
代碼運行正常,當我刪除Main.Refresh(),它只是沒有在我的應用程序更新標籤,因此對於功能的需求。 請幫助,我準備好繼續前進這個錯誤.... 也請記住,我甚至還沒有在一個星期內快速編碼,所以請分解什麼是最好的錯能夠。 TIA
你是如何定義數組的? – farzadshbfn
在Swift中,變量和方法名應該以小寫字母開頭。 – Moritz