2017-11-11 110 views
-3

Now我知道如何弄清楚爲什麼我的應用程序崩潰了,請有人幫我修復此崩潰。如何修復因線程0錯誤導致的應用程序崩潰

enter image description here

這會做的工作?謝謝你

switch tempDayHolder 
        { 
        case "Monday": 
         outputWeekdays.append(2) 
        case "Tuesday": 
         outputWeekdays.append(3) 
        case "Wednesday": 
         outputWeekdays.append(4) 
        case "Thursday": 
         outputWeekdays.append(5) 
        case "Friday": 
         outputWeekdays.append(6) 
        case "Saturday": 
         outputWeekdays.append(7) 
        case "Sunday": 
         outputWeekdays.append(1) 
        default : 
         outputWeekdays.append(1) 
        } 

道歉,如果這是一個基本的問題。我是一名新手,從在線教程中學習東西,這是我第一次遇到這個問題。

好吧,所以我連接了發生崩潰的手機,進入xcode> Devices並且這是崩潰日誌。從這裏任何指針將高度讚賞:

https://pastebin.com/mhTteSBC

+0

什麼是錯誤?部分代碼全部直接作爲文本。 – Carcigenicate

+0

1.是否? 2.你是如何聲明outputString/outputWeekdays的? –

+0

我不是100%確定。我認爲這是它崩潰的地方,因爲那裏有一條紅絲帶(如截圖所示)。我如何知道代碼崩潰的確切位置?該應用程序似乎在模擬器中正常工作。然而,在現實生活中,它正在崩潰。 – Has

回答

0

(讓我們忽略你的編程風格。至於你說你是一個新手)

源錯過某些類型。

所以:

1)假設完整的代碼是:

import Foundation 


var outputWeekdays = [Int]() 

class Days { 

    init() { 
    } 
    var daysSelected: String?{ 
     get{ 
      if let returnValue = UserDefaults.standard.object(forKey: "SELECTED_DAY") as? String{ 
       return returnValue 
      } 
      else{ 
       return nil 
      } 
     } 
    } 
} 
func foo(days: Days){ 

    let tempDayHolder = days.daysSelected as? String ?? "" 
    switch tempDayHolder 
    { 
    case "Monday": 
     outputWeekdays.append(2) 
    case "Tuesday": 
     outputWeekdays.append(3) 
    case "Wednesday": 
     outputWeekdays.append(4) 
    case "Thursday": 
     outputWeekdays.append(5) 
    case "Friday": 
     outputWeekdays.append(6) 
    case "Saturday": 
     outputWeekdays.append(7) 
    case "Sunday": 
     outputWeekdays.append(1) 
    default : 
     outputWeekdays.append(1) 
    } 
} 

var days = Days() 
foo(days: days) 

代碼不工作(我們假設我們得到了例如用於首選項....) 我得到了不必要的鑄造韋林..

2)做:

var daysSelected: NSString?{ 
.. 

和:

let tempDayHolder = days.daysSelected as String? ?? "" 

它確實有效。

所以我們需要你的完整代碼。