Selaa lähdekoodia

replaced forced unwrapping by optional unwrapping

nayooti 5 vuotta sitten
vanhempi
commit
b3ba56e107

+ 4 - 0
deltachat-ios.xcodeproj/project.pbxproj

@@ -135,6 +135,7 @@
 		AE851AC9227C77CF00ED86F0 /* Media.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE851AC8227C77CF00ED86F0 /* Media.swift */; };
 		AE851AC9227C77CF00ED86F0 /* Media.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE851AC8227C77CF00ED86F0 /* Media.swift */; };
 		AE851ACE227CA54400ED86F0 /* InitialsBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE851ACD227CA54300ED86F0 /* InitialsBadge.swift */; };
 		AE851ACE227CA54400ED86F0 /* InitialsBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE851ACD227CA54300ED86F0 /* InitialsBadge.swift */; };
 		AE851AD0227DF50900ED86F0 /* GroupChatDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE851ACF227DF50900ED86F0 /* GroupChatDetailViewController.swift */; };
 		AE851AD0227DF50900ED86F0 /* GroupChatDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE851ACF227DF50900ED86F0 /* GroupChatDetailViewController.swift */; };
+		AE9B7DFB23E2EB4F0086344F /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE9B7DFA23E2EB4F0086344F /* Error.swift */; };
 		AE9DAF0D22C1215D004C9591 /* EditContactController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE9DAF0C22C1215D004C9591 /* EditContactController.swift */; };
 		AE9DAF0D22C1215D004C9591 /* EditContactController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE9DAF0C22C1215D004C9591 /* EditContactController.swift */; };
 		AE9DAF0F22C278C6004C9591 /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE9DAF0E22C278C6004C9591 /* ChatTitleView.swift */; };
 		AE9DAF0F22C278C6004C9591 /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE9DAF0E22C278C6004C9591 /* ChatTitleView.swift */; };
 		AEACE2DD1FB323CA00DCDD78 /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEACE2DC1FB323CA00DCDD78 /* ChatViewController.swift */; };
 		AEACE2DD1FB323CA00DCDD78 /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEACE2DC1FB323CA00DCDD78 /* ChatViewController.swift */; };
@@ -361,6 +362,7 @@
 		AE851AC8227C77CF00ED86F0 /* Media.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Media.swift; sourceTree = "<group>"; };
 		AE851AC8227C77CF00ED86F0 /* Media.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Media.swift; sourceTree = "<group>"; };
 		AE851ACD227CA54300ED86F0 /* InitialsBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitialsBadge.swift; sourceTree = "<group>"; };
 		AE851ACD227CA54300ED86F0 /* InitialsBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitialsBadge.swift; sourceTree = "<group>"; };
 		AE851ACF227DF50900ED86F0 /* GroupChatDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupChatDetailViewController.swift; sourceTree = "<group>"; };
 		AE851ACF227DF50900ED86F0 /* GroupChatDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupChatDetailViewController.swift; sourceTree = "<group>"; };
+		AE9B7DFA23E2EB4F0086344F /* Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = "<group>"; };
 		AE9DAF0C22C1215D004C9591 /* EditContactController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditContactController.swift; sourceTree = "<group>"; };
 		AE9DAF0C22C1215D004C9591 /* EditContactController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditContactController.swift; sourceTree = "<group>"; };
 		AE9DAF0E22C278C6004C9591 /* ChatTitleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = "<group>"; };
 		AE9DAF0E22C278C6004C9591 /* ChatTitleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = "<group>"; };
 		AEACE2DC1FB323CA00DCDD78 /* ChatViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = "<group>"; };
 		AEACE2DC1FB323CA00DCDD78 /* ChatViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = "<group>"; };
@@ -717,6 +719,7 @@
 				30AC265E237F1807002A943F /* AvatarHelper.swift */,
 				30AC265E237F1807002A943F /* AvatarHelper.swift */,
 				302B84C42396627F001C261F /* RelayHelper.swift */,
 				302B84C42396627F001C261F /* RelayHelper.swift */,
 				AEB7069023CF618D00504AB3 /* TypeAlias.swift */,
 				AEB7069023CF618D00504AB3 /* TypeAlias.swift */,
+				AE9B7DFA23E2EB4F0086344F /* Error.swift */,
 			);
 			);
 			path = Helper;
 			path = Helper;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -1139,6 +1142,7 @@
 				305961E22346125100C80F33 /* MessagesDisplayDelegate.swift in Sources */,
 				305961E22346125100C80F33 /* MessagesDisplayDelegate.swift in Sources */,
 				305962092346125100C80F33 /* AudioMessageSizeCalculator.swift in Sources */,
 				305962092346125100C80F33 /* AudioMessageSizeCalculator.swift in Sources */,
 				305961DB2346125100C80F33 /* AudioItem.swift in Sources */,
 				305961DB2346125100C80F33 /* AudioItem.swift in Sources */,
+				AE9B7DFB23E2EB4F0086344F /* Error.swift in Sources */,
 				305962012346125100C80F33 /* PlayButtonView.swift in Sources */,
 				305962012346125100C80F33 /* PlayButtonView.swift in Sources */,
 				789E879D21D6DF86003ED1C5 /* ProgressHud.swift in Sources */,
 				789E879D21D6DF86003ED1C5 /* ProgressHud.swift in Sources */,
 				305961F32346125100C80F33 /* MediaMessageCell.swift in Sources */,
 				305961F32346125100C80F33 /* MediaMessageCell.swift in Sources */,

+ 16 - 15
deltachat-ios/Controller/ChatListController.swift

@@ -148,7 +148,6 @@ class ChatListController: UITableViewController {
     }
     }
 
 
     override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
     override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
-
         let cellViewModel = viewModel.getCellViewModelFor(indexPath: indexPath)
         let cellViewModel = viewModel.getCellViewModelFor(indexPath: indexPath)
 
 
         switch cellViewModel.type {
         switch cellViewModel.type {
@@ -158,25 +157,27 @@ class ChatListController: UITableViewController {
                 let archiveCell = tableView.dequeueReusableCell(withIdentifier: archivedCellReuseIdentifier, for: indexPath)
                 let archiveCell = tableView.dequeueReusableCell(withIdentifier: archivedCellReuseIdentifier, for: indexPath)
                 update(archiveCell: archiveCell)
                 update(archiveCell: archiveCell)
                 return archiveCell
                 return archiveCell
-            }
-
-            if chatId == DC_CHAT_ID_DEADDROP, let msgId = viewModel.msgIdFor(indexPath: indexPath) {
-                let deaddropCell = tableView.dequeueReusableCell(withIdentifier: deadDropCellReuseIdentifier, for: indexPath) as! AvatarTextCell
+            } else if
+                chatId == DC_CHAT_ID_DEADDROP,
+                let msgId = viewModel.msgIdFor(indexPath: indexPath),
+                let deaddropCell = tableView.dequeueReusableCell(withIdentifier: deadDropCellReuseIdentifier, for: indexPath) as? AvatarTextCell {
                 update(deaddropCell: deaddropCell, msgId: msgId)
                 update(deaddropCell: deaddropCell, msgId: msgId)
                 return deaddropCell
                 return deaddropCell
+            } else if let chatCell = tableView.dequeueReusableCell(withIdentifier: chatCellReuseIdentifier, for: indexPath) as? AvatarTextCell {
+            // default chatCell
+                let cellViewModel = viewModel.getCellViewModelFor(indexPath: indexPath)
+                update(avatarCell: chatCell, cellViewModel: cellViewModel)
+                return chatCell
             }
             }
-
-            // default chatCells
-            let chatCell = tableView.dequeueReusableCell(withIdentifier: chatCellReuseIdentifier, for: indexPath) as! AvatarTextCell
-            let cellViewModel = viewModel.getCellViewModelFor(indexPath: indexPath)
-            update(avatarCell: chatCell, cellViewModel: cellViewModel)
-            return chatCell
-        case .CONTACT(let contactData):
+        case .CONTACT:
             // will be shown when search is active
             // will be shown when search is active
-            let contactCell = tableView.dequeueReusableCell(withIdentifier: contactCellReuseIdentifier, for: indexPath) as! AvatarTextCell
-            update(avatarCell: contactCell, cellViewModel: cellViewModel)
-            return contactCell
+            if let contactCell = tableView.dequeueReusableCell(withIdentifier: contactCellReuseIdentifier, for: indexPath) as? AvatarTextCell {
+                update(avatarCell: contactCell, cellViewModel: cellViewModel)
+                return contactCell
+            }
         }
         }
+        safe_fatalError("Could not find/dequeue or recycle UITableViewCell.")
+        return UITableViewCell()
     }
     }
 
 
     override func tableView(_: UITableView, didSelectRowAt indexPath: IndexPath) {
     override func tableView(_: UITableView, didSelectRowAt indexPath: IndexPath) {

+ 1 - 1
deltachat-ios/DC/Wrapper.swift

@@ -6,7 +6,7 @@ class DcContext {
     let contextPointer: OpaquePointer?
     let contextPointer: OpaquePointer?
 
 
     init() {
     init() {
-        var version = ""< 
+        var version = ""
         if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
         if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
             version += " " + appVersion
             version += " " + appVersion
         }
         }

+ 2 - 2
deltachat-ios/Helper/Error.swift

@@ -1,7 +1,7 @@
 import UIKit
 import UIKit
 
 
 /// dc_assert is only exectued in debug mode (when executed from xcode).
 /// dc_assert is only exectued in debug mode (when executed from xcode).
-func dc_assert(_ condition: Bool, _ message: String? = nil, presenter: UIViewController? = nil) {
+func safe_assert(_ condition: Bool, _ message: String? = nil, presenter: UIViewController? = nil) {
     #if DEBUG
     #if DEBUG
     if !condition, let presenter = presenter {
     if !condition, let presenter = presenter {
         let alert = UIAlertController(title: "Congratulation! You found an assertion.", message: message, preferredStyle: .alert)
         let alert = UIAlertController(title: "Congratulation! You found an assertion.", message: message, preferredStyle: .alert)
@@ -16,7 +16,7 @@ func dc_assert(_ condition: Bool, _ message: String? = nil, presenter: UIViewCon
 }
 }
 
 
 /// dc_fatal_error is only exectued in debug mode (when executed from xcode).
 /// dc_fatal_error is only exectued in debug mode (when executed from xcode).
-func dc_fatalError(_ message: String? = nil) {
+func safe_fatalError(_ message: String? = nil) {
     #if DEBUG
     #if DEBUG
     if let message = message {
     if let message = message {
         fatalError(message)
         fatalError(message)