2016-06-20 50 views

回答

0

我通過您的代碼看起來和一個解決方案可能是您的segmentedControl的值作爲參數添加到您的TodoItem因爲你已經在gentag參數現在要做的。

然後在您的addItem方法你「只是」需要從Int值你現在有一個NSCalendarUnit,你可以交給你notification.repeatInterval轉換。

爲了讓這個美麗的你可以創建一個新的Enum誰知道如何從IntNSCalendarUnit值轉換,然後你gentag參數可以是這種類型。

所以,在你有該文件的TodoSchedulingViewController你可以寫這樣的事情在文件的頂部:

import UIKit 

enum RepeatInterval: Int { 
    case None = 0 
    case Daily = 1 
    case Weekly = 2 

    func toCalendarUnit() -> NSCalendarUnit { 
     switch self { 
     case .None: 
      return NSCalendarUnit(rawValue: 0) 
     case .Daily: 
      return NSCalendarUnit.Day 
     case .Weekly: 
      return NSCalendarUnit.Weekday 
     } 
    } 
} 

class TodoSchedulingViewController: UIViewController { 
... 

然後你可以使用這樣的:

在你ViewController

let todoItem = TodoItem(deadline:...., 
         title:...., 
         gentag: RepeatInterval(rawValue: segmentedControl.selectedSegmentIndex)!, //You can force unwrap here, because you know the value is always one you get from your segmentedControl 
         UUID......) 

在你TodoList類:

... 
notification.userInfo = ["title" : item.title, "UUID" : item.UUID] 
notification.repeatInterval = item.gentag.toCalendarUnit() 

希望是有道理的。

哦......下回,請發表您的實際代碼,而不是圖像,它可以更容易快速地看到正在發生的事情和方式更快地從你的代碼複製代碼片段到一個答案:)

+0

在哪裏放置代碼的第一部分。以enum RepeatInterval開頭# – Mksteffensen

+0

@Mksteffensen我已經更新了我的答案:) – pbodsk

+0

再次您好,當我使用您提供給我的代碼時,我會失敗更多。這裏是失敗的代碼:''gentag:RepeatInterval(rawValue:segmentedControl.selectedSegmentIndex)!,'這裏是失敗'不能將類型'RepeatInterval'的值轉換爲期望的參數類型'String'' – Mksteffensen