From 75c77fb3d1c61606b078b7e604c3d8ad0469f71f Mon Sep 17 00:00:00 2001 From: Srdan Rasic Date: Thu, 19 Feb 2015 18:54:03 +0100 Subject: [PATCH] Support for Swift 1.0. Fixes #4 (compilation issues in Xcode 6.1 and above). --- .../NSCalendar+CalendarAdditions.swift | 20 ++++++++--------- .../Classes/Common/Store/CoreDataStore.swift | 16 +++++++------- .../Manager/AddDataManager.swift | 2 +- .../Transition/AddDismissalTransition.swift | 4 ++-- .../AddPresentationTransition.swift | 6 ++--- .../View/AddViewController.swift | 4 ++-- .../Interactor/ListInteractor.swift | 4 ++-- .../Interactor/ListInteractorIO.swift | 2 +- .../Manager/ListDataManager.swift | 8 +++---- .../Presenter/ListPresenter.swift | 6 ++--- .../Presenter/UpcomingDisplayData.swift | 6 ++--- .../UpcomingDisplayDataCollection.swift | 22 +++++++++---------- .../Presenter/UpcomingDisplaySection.swift | 8 +++---- .../View/ListViewController.swift | 16 +++++++------- 14 files changed, 62 insertions(+), 62 deletions(-) diff --git a/VIPER-SWIFT/Classes/Common/Categories/NSCalendar+CalendarAdditions.swift b/VIPER-SWIFT/Classes/Common/Categories/NSCalendar+CalendarAdditions.swift index 316fd4c..5c0b62e 100755 --- a/VIPER-SWIFT/Classes/Common/Categories/NSCalendar+CalendarAdditions.swift +++ b/VIPER-SWIFT/Classes/Common/Categories/NSCalendar+CalendarAdditions.swift @@ -10,7 +10,7 @@ import Foundation extension NSCalendar { class func gregorianCalendar() -> NSCalendar { - return NSCalendar(calendarIdentifier: NSGregorianCalendar) + return NSCalendar(calendarIdentifier: NSGregorianCalendar)! } func dateWithYear(year: Int, month: Int, day: Int) -> NSDate { @@ -19,33 +19,33 @@ extension NSCalendar { components.month = month components.day = day components.hour = 12 - return dateFromComponents(components) + return dateFromComponents(components)! } func dateForTomorrowRelativeToToday(today: NSDate) -> NSDate { let tomorrowComponents = NSDateComponents() tomorrowComponents.day = 1 - return dateByAddingComponents(tomorrowComponents, toDate: today, options: nil) + return dateByAddingComponents(tomorrowComponents, toDate: today, options: nil)! } func dateForEndOfWeekWithDate(date: NSDate) -> NSDate { let daysRemainingThisWeek = daysRemainingInWeekWithDate(date) let remainingDaysComponent = NSDateComponents() remainingDaysComponent.day = daysRemainingThisWeek - return dateByAddingComponents(remainingDaysComponent, toDate: date, options: nil) + return dateByAddingComponents(remainingDaysComponent, toDate: date, options: nil)! } func dateForBeginningOfDay(date: NSDate) -> NSDate { let newComponent = components((NSCalendarUnit.YearCalendarUnit | NSCalendarUnit.CalendarUnitMonth | NSCalendarUnit.CalendarUnitDay), fromDate: date) let newDate = dateFromComponents(newComponent) - return newDate + return newDate! } func dateForEndOfDay(date: NSDate) -> NSDate { let components = NSDateComponents() components.day = 1 let toDate = dateForBeginningOfDay(date) - let nextDay = dateByAddingComponents(components, toDate: toDate, options: nil) + let nextDay = dateByAddingComponents(components, toDate: toDate, options: nil)! let endDay = nextDay.dateByAddingTimeInterval(-1) return nextDay } @@ -61,8 +61,8 @@ extension NSCalendar { func dateForEndOfFollowingWeekWithDate(date: NSDate) -> NSDate { let endOfWeek = dateForEndOfWeekWithDate(date) let nextWeekComponent = NSDateComponents() - nextWeekComponent.setWeek(1) - let followingWeekDate = dateByAddingComponents(nextWeekComponent, toDate: endOfWeek, options: nil) + nextWeekComponent.weekOfMonth = 1 + let followingWeekDate = dateByAddingComponents(nextWeekComponent, toDate: endOfWeek, options: nil)! return followingWeekDate } @@ -81,7 +81,7 @@ extension NSCalendar { func isDate(date: NSDate, duringSameWeekAsDate: NSDate) -> Bool { let dateComponents = components(NSCalendarUnit.WeekCalendarUnit, fromDate: date) let duringSameWeekComponents = components(NSCalendarUnit.WeekCalendarUnit, fromDate: duringSameWeekAsDate) - let result = dateComponents.week() == duringSameWeekComponents.week() + let result = dateComponents.weekOfMonth == duringSameWeekComponents.weekOfMonth return result } @@ -89,7 +89,7 @@ extension NSCalendar { let nextWeek = dateForEndOfFollowingWeekWithDate(duringWeekAfterDate) let dateComponents = components(NSCalendarUnit.WeekCalendarUnit, fromDate: date) let nextWeekComponents = components(NSCalendarUnit.WeekCalendarUnit, fromDate: nextWeek) - let result = dateComponents.week() == nextWeekComponents.week() + let result = dateComponents.weekOfMonth == nextWeekComponents.weekOfMonth return result } diff --git a/VIPER-SWIFT/Classes/Common/Store/CoreDataStore.swift b/VIPER-SWIFT/Classes/Common/Store/CoreDataStore.swift index 0921a62..9b32c9e 100755 --- a/VIPER-SWIFT/Classes/Common/Store/CoreDataStore.swift +++ b/VIPER-SWIFT/Classes/Common/Store/CoreDataStore.swift @@ -23,11 +23,11 @@ class CoreDataStore : NSObject { var managedObjectModel : NSManagedObjectModel? var managedObjectContext : NSManagedObjectContext? - init() { + override init() { managedObjectModel = NSManagedObjectModel.mergedModelFromBundles(nil) - persistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel) - + persistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel!) + let domains = NSSearchPathDomainMask.UserDomainMask let directory = NSSearchPathDirectory.DocumentDirectory @@ -42,25 +42,25 @@ class CoreDataStore : NSObject { managedObjectContext = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType) managedObjectContext!.persistentStoreCoordinator = persistentStoreCoordinator managedObjectContext!.undoManager = nil - + super.init() } - func fetchEntriesWithPredicate(predicate: NSPredicate, sortDescriptors: AnyObject[], completionBlock: ((ManagedTodoItem[]) -> Void)!) { + func fetchEntriesWithPredicate(predicate: NSPredicate, sortDescriptors: [AnyObject], completionBlock: (([ManagedTodoItem]) -> Void)!) { let fetchRequest = NSFetchRequest(entityName: "TodoItem") fetchRequest.predicate = predicate fetchRequest.sortDescriptors = [] managedObjectContext?.performBlock { let queryResults = self.managedObjectContext?.executeFetchRequest(fetchRequest, error: nil) - let managedResults = queryResults! as ManagedTodoItem[] + let managedResults = queryResults! as [ManagedTodoItem] completionBlock(managedResults) } } func newTodoItem() -> ManagedTodoItem { - let entityDescription = NSEntityDescription.entityForName("TodoItem", inManagedObjectContext: managedObjectContext) - let newEntry = NSManagedObject(entity: entityDescription, insertIntoManagedObjectContext: managedObjectContext) as ManagedTodoItem + let entityDescription = NSEntityDescription.entityForName("TodoItem", inManagedObjectContext: managedObjectContext!) + let newEntry = NSManagedObject(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext) as ManagedTodoItem return newEntry } diff --git a/VIPER-SWIFT/Classes/Modules/Add/Application Logic/Manager/AddDataManager.swift b/VIPER-SWIFT/Classes/Modules/Add/Application Logic/Manager/AddDataManager.swift index fadd6d8..d725187 100755 --- a/VIPER-SWIFT/Classes/Modules/Add/Application Logic/Manager/AddDataManager.swift +++ b/VIPER-SWIFT/Classes/Modules/Add/Application Logic/Manager/AddDataManager.swift @@ -12,7 +12,7 @@ class AddDataManager : NSObject { var dataStore : CoreDataStore? func addNewEntry(entry: TodoItem) { - let newEntry = dataStore?.newTodoItem() as ManagedTodoItem + let newEntry = dataStore!.newTodoItem() as ManagedTodoItem newEntry.name = entry.name newEntry.date = entry.dueDate; diff --git a/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddDismissalTransition.swift b/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddDismissalTransition.swift index 81ba22a..5431407 100755 --- a/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddDismissalTransition.swift +++ b/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddDismissalTransition.swift @@ -10,11 +10,11 @@ import Foundation import UIKit class AddDismissalTransition : NSObject, UIViewControllerAnimatedTransitioning { - func transitionDuration(transitionContext: UIViewControllerContextTransitioning!) -> NSTimeInterval { + func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval { return 0.72 } - func animateTransition(transitionContext: UIViewControllerContextTransitioning!) { + func animateTransition(transitionContext: UIViewControllerContextTransitioning) { let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey) as AddViewController let finalCenter = CGPointMake(160.0, (fromVC.view.bounds.size.height / 2) - 1000.0) diff --git a/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddPresentationTransition.swift b/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddPresentationTransition.swift index 88a7205..d7f8ffd 100755 --- a/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddPresentationTransition.swift +++ b/VIPER-SWIFT/Classes/Modules/Add/User Interface/Transition/AddPresentationTransition.swift @@ -10,12 +10,12 @@ import Foundation import UIKit class AddPresentationTransition: NSObject, UIViewControllerAnimatedTransitioning { - func transitionDuration(transitionContext: UIViewControllerContextTransitioning!) -> NSTimeInterval { + func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval { return 0.72 } - func animateTransition(transitionContext: UIViewControllerContextTransitioning!) { - let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey) + func animateTransition(transitionContext: UIViewControllerContextTransitioning) { + let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)! let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey) as AddViewController toVC.transitioningBackgroundView.backgroundColor = UIColor.darkGrayColor() diff --git a/VIPER-SWIFT/Classes/Modules/Add/User Interface/View/AddViewController.swift b/VIPER-SWIFT/Classes/Modules/Add/User Interface/View/AddViewController.swift index ec50fdc..622f7ec 100755 --- a/VIPER-SWIFT/Classes/Modules/Add/User Interface/View/AddViewController.swift +++ b/VIPER-SWIFT/Classes/Modules/Add/User Interface/View/AddViewController.swift @@ -12,8 +12,8 @@ import UIKit class AddViewController: UIViewController, UITextFieldDelegate, AddViewInterface { var eventHandler : AddModuleInterface? - @IBOutlet var nameTextField : UITextField - @IBOutlet var datePicker : UIDatePicker? + @IBOutlet var nameTextField : UITextField! + @IBOutlet var datePicker : UIDatePicker! var minimumDate : NSDate = NSDate() var transitioningBackgroundView : UIView = UIView() diff --git a/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractor.swift b/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractor.swift index f3b38d3..b3d9744 100755 --- a/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractor.swift +++ b/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractor.swift @@ -31,10 +31,10 @@ class ListInteractor : NSObject, ListInteractorInput { }) } - func upcomingItemsFromToDoItems(todoItems: TodoItem[]) -> UpcomingItem[] { + func upcomingItemsFromToDoItems(todoItems: [TodoItem]) -> [UpcomingItem] { let calendar = NSCalendar.autoupdatingCurrentCalendar() - var upcomingItems : UpcomingItem[] = [] + var upcomingItems : [UpcomingItem] = [] for todoItem in todoItems { var dateRelation = calendar.nearTermRelationForDate(todoItem.dueDate, relativeToToday: clock.today()) diff --git a/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractorIO.swift b/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractorIO.swift index 6be6403..6114b0a 100755 --- a/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractorIO.swift +++ b/VIPER-SWIFT/Classes/Modules/List/Application Logic/Interactor/ListInteractorIO.swift @@ -14,5 +14,5 @@ protocol ListInteractorInput { } protocol ListInteractorOutput { - func foundUpcomingItems(upcomingItems: UpcomingItem[]) + func foundUpcomingItems(upcomingItems: [UpcomingItem]) } diff --git a/VIPER-SWIFT/Classes/Modules/List/Application Logic/Manager/ListDataManager.swift b/VIPER-SWIFT/Classes/Modules/List/Application Logic/Manager/ListDataManager.swift index 546c714..4a281fe 100755 --- a/VIPER-SWIFT/Classes/Modules/List/Application Logic/Manager/ListDataManager.swift +++ b/VIPER-SWIFT/Classes/Modules/List/Application Logic/Manager/ListDataManager.swift @@ -12,7 +12,7 @@ import Foundation class ListDataManager : NSObject { var coreDataStore : CoreDataStore? - func todoItemsBetweenStartDate(startDate: NSDate, endDate: NSDate, completion: ((TodoItem[]) -> Void)!) { + func todoItemsBetweenStartDate(startDate: NSDate, endDate: NSDate, completion: (([TodoItem]) -> Void)!) { let calendar = NSCalendar.autoupdatingCurrentCalendar() let beginning = calendar.dateForBeginningOfDay(startDate) let end = calendar.dateForEndOfDay(endDate) @@ -20,7 +20,7 @@ class ListDataManager : NSObject { let predicate = NSPredicate(format: "(date >= %@) AND (date <= %@)", beginning, end) let sortDescriptors = [] - coreDataStore?.fetchEntriesWithPredicate(predicate, + coreDataStore?.fetchEntriesWithPredicate(predicate!, sortDescriptors: sortDescriptors, completionBlock: { entries in let todoItems = self.todoItemsFromDataStoreEntries(entries) @@ -28,8 +28,8 @@ class ListDataManager : NSObject { }) } - func todoItemsFromDataStoreEntries(entries: ManagedTodoItem[]) -> TodoItem[] { - var todoItems : TodoItem[] = [] + func todoItemsFromDataStoreEntries(entries: [ManagedTodoItem]) -> [TodoItem] { + var todoItems : [TodoItem] = [] for managedTodoItem in entries { let todoItem = TodoItem(dueDate: managedTodoItem.date, name: managedTodoItem.name) diff --git a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/ListPresenter.swift b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/ListPresenter.swift index bd24ab0..5cf947e 100755 --- a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/ListPresenter.swift +++ b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/ListPresenter.swift @@ -18,7 +18,7 @@ class ListPresenter : NSObject, ListInteractorOutput, ListModuleInterface, AddMo listInteractor?.findUpcomingItems() } - func foundUpcomingItems(upcomingItems: UpcomingItem[]) { + func foundUpcomingItems(upcomingItems: [UpcomingItem]) { if upcomingItems.count == 0 { userInterface?.showNoContentMessage() } else { @@ -26,12 +26,12 @@ class ListPresenter : NSObject, ListInteractorOutput, ListModuleInterface, AddMo } } - func updateUserInterfaceWithUpcomingItems(upcomingItems: UpcomingItem[]) { + func updateUserInterfaceWithUpcomingItems(upcomingItems: [UpcomingItem]) { let upcomingDisplayData = upcomingDisplayDataWithItems(upcomingItems) userInterface?.showUpcomingDisplayData(upcomingDisplayData) } - func upcomingDisplayDataWithItems(upcomingItems: UpcomingItem[]) -> UpcomingDisplayData { + func upcomingDisplayDataWithItems(upcomingItems: [UpcomingItem]) -> UpcomingDisplayData { let collection = UpcomingDisplayDataCollection() collection.addUpcomingItems(upcomingItems) return collection.collectedDisplayData() diff --git a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayData.swift b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayData.swift index 9c0a93b..16139ce 100755 --- a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayData.swift +++ b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayData.swift @@ -9,11 +9,11 @@ import Foundation struct UpcomingDisplayData : Equatable { - let sections : UpcomingDisplaySection[] = [] + let sections : [UpcomingDisplaySection] = [] - init(sections: UpcomingDisplaySection[]) { + init(sections: [UpcomingDisplaySection]) { self.sections = sections - self.sections.unshare() + //self.sections.unshare() } } diff --git a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayDataCollection.swift b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayDataCollection.swift index d152667..68b0c0b 100755 --- a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayDataCollection.swift +++ b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplayDataCollection.swift @@ -10,13 +10,13 @@ import Foundation class UpcomingDisplayDataCollection { let dayFormatter = NSDateFormatter() - var sections : Dictionary = Dictionary() + var sections : Dictionary = Dictionary() init() { dayFormatter.dateFormat = NSDateFormatter.dateFormatFromTemplate("EEEE", options: 0, locale: NSLocale.autoupdatingCurrentLocale()) } - func addUpcomingItems(upcomingItems: UpcomingItem[]) { + func addUpcomingItems(upcomingItems: [UpcomingItem]) { for upcomingItem in upcomingItems { addUpcomingItem(upcomingItem) } @@ -28,11 +28,11 @@ class UpcomingDisplayDataCollection { } func addDisplayItem(displayItem: UpcomingDisplayItem, dateRelation: NearTermDateRelation) { - if var realSection : UpcomingDisplayItem[] = sections[dateRelation] { + if var realSection : [UpcomingDisplayItem] = sections[dateRelation] { realSection.append(displayItem) sections[dateRelation] = realSection } else { - var newSection : UpcomingDisplayItem[] = [] + var newSection : [UpcomingDisplayItem] = [] newSection.append(displayItem) sections[dateRelation] = newSection } @@ -53,7 +53,7 @@ class UpcomingDisplayDataCollection { } func collectedDisplayData() -> UpcomingDisplayData { - let collectedSections : UpcomingDisplaySection[] = sortedUpcomingDisplaySections() + let collectedSections : [UpcomingDisplaySection] = sortedUpcomingDisplaySections() return UpcomingDisplayData(sections: collectedSections) } @@ -65,14 +65,14 @@ class UpcomingDisplayDataCollection { return UpcomingDisplaySection(name: sectionTitle, imageName: imageName, items: items) } - func sortedUpcomingDisplaySections() -> UpcomingDisplaySection[] { + func sortedUpcomingDisplaySections() -> [UpcomingDisplaySection] { let keys = sortedNearTermDateRelations() - var displaySections : UpcomingDisplaySection[] = [] - + var displaySections : [UpcomingDisplaySection] = [] + for dateRelation in keys { var itemArray = sections[dateRelation] - if itemArray { + if (itemArray != nil) { var displaySection = displaySectionForDateRelation(dateRelation) displaySections.insert(displaySection, atIndex: displaySections.endIndex) } @@ -81,8 +81,8 @@ class UpcomingDisplayDataCollection { return displaySections } - func sortedNearTermDateRelations() -> NearTermDateRelation[] { - var array : NearTermDateRelation[] = [] + func sortedNearTermDateRelations() -> [NearTermDateRelation] { + var array : [NearTermDateRelation] = [] array.insert(NearTermDateRelation.Today, atIndex: 0) array.insert(NearTermDateRelation.Tomorrow, atIndex: 1) array.insert(NearTermDateRelation.LaterThisWeek, atIndex: 2) diff --git a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplaySection.swift b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplaySection.swift index 5164a31..620b7e1 100755 --- a/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplaySection.swift +++ b/VIPER-SWIFT/Classes/Modules/List/User Interface/Presenter/UpcomingDisplaySection.swift @@ -12,15 +12,15 @@ import Foundation struct UpcomingDisplaySection : Equatable { let name : String = "" let imageName : String = "" - var items : UpcomingDisplayItem[] = [] + var items : [UpcomingDisplayItem] = [] - init(name: String, imageName: String, items: UpcomingDisplayItem[]?) { + init(name: String, imageName: String, items: [UpcomingDisplayItem]?) { self.name = name self.imageName = imageName - if items { + if (items != nil) { self.items = items! - self.items.unshare() + //self.items.unshare() } } } diff --git a/VIPER-SWIFT/Classes/Modules/List/User Interface/View/ListViewController.swift b/VIPER-SWIFT/Classes/Modules/List/User Interface/View/ListViewController.swift index 954c4bd..ebd8481 100755 --- a/VIPER-SWIFT/Classes/Modules/List/User Interface/View/ListViewController.swift +++ b/VIPER-SWIFT/Classes/Modules/List/User Interface/View/ListViewController.swift @@ -16,7 +16,7 @@ class ListViewController : UITableViewController, ListViewInterface { var dataProperty : UpcomingDisplayData? var strongTableView : UITableView? - @IBOutlet var noContentView : UIView + @IBOutlet var noContentView : UIView! override func viewDidLoad() { super.viewDidLoad() @@ -58,7 +58,7 @@ class ListViewController : UITableViewController, ListViewInterface { tableView.reloadData() } - override func numberOfSectionsInTableView(tableView: UITableView!) -> Int { + override func numberOfSectionsInTableView(tableView: UITableView) -> Int { var numberOfSections = dataProperty?.sections.count if dataProperty?.sections.count == nil { @@ -68,25 +68,25 @@ class ListViewController : UITableViewController, ListViewInterface { return numberOfSections! } - override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { + override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let upcomingSection = dataProperty?.sections[section] return upcomingSection!.items.count } - override func tableView(tableView: UITableView!, titleForHeaderInSection section: Int) -> String! { + override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String { let upcomingSection = dataProperty?.sections[section] return upcomingSection!.name } - override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { + override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let upcomingSection = dataProperty?.sections[indexPath.section] let upcomingItem = upcomingSection!.items[indexPath.row] let cell = tableView.dequeueReusableCellWithIdentifier(ListEntryCellIdentifier, forIndexPath: indexPath) as UITableViewCell - cell.textLabel.text = upcomingItem.title; - cell.detailTextLabel.text = upcomingItem.dueDate; - cell.imageView.image = UIImage(named: upcomingSection!.imageName) + cell.textLabel!.text = upcomingItem.title; + cell.detailTextLabel!.text = upcomingItem.dueDate; + cell.imageView!.image = UIImage(named: upcomingSection!.imageName) cell.selectionStyle = UITableViewCellSelectionStyle.None; return cell