Marino Faggiana 7 年之前
父節點
當前提交
005e354aca
共有 2 個文件被更改,包括 16 次插入11 次删除
  1. 7 7
      iOSClient/Database/NCManageDatabase.swift
  2. 9 4
      iOSClient/Networking/CCNetworking.m

+ 7 - 7
iOSClient/Database/NCManageDatabase.swift

@@ -1379,22 +1379,22 @@ class NCManageDatabase: NSObject {
             try! realm.write {
             
                 if session != nil {
-                    result!.session = session!
+                    result?.session = session!
                 }
                 if sessionError != nil {
-                    result!.sessionError = sessionError!
+                    result?.sessionError = sessionError!
                 }
                 if sessionSelector != nil {
-                    result!.sessionSelector = sessionSelector!
+                    result?.sessionSelector = sessionSelector!
                 }
                 if sessionSelectorPost != nil {
-                    result!.sessionSelectorPost = sessionSelectorPost!
+                    result?.sessionSelectorPost = sessionSelectorPost!
                 }
                 if sessionTaskIdentifier != Int(k_taskIdentifierNULL) {
-                    result!.sessionTaskIdentifier = sessionTaskIdentifier
+                    result?.sessionTaskIdentifier = sessionTaskIdentifier
                 }
                 if sessionTaskIdentifierPlist != Int(k_taskIdentifierNULL) {
-                    result!.sessionTaskIdentifierPlist = sessionTaskIdentifierPlist
+                    result?.sessionTaskIdentifierPlist = sessionTaskIdentifierPlist
                 }
             }
             
@@ -1402,7 +1402,7 @@ class NCManageDatabase: NSObject {
         
         // Update Date Read Directory
         if result != nil {
-            self.setDateReadDirectory(directoryID: result!.directoryID)
+            self.setDateReadDirectory(directoryID: (result?.directoryID)!)
         }
     }
     

+ 9 - 4
iOSClient/Networking/CCNetworking.m

@@ -713,11 +713,16 @@
             metadata.sessionTaskIdentifier = k_taskIdentifierDone;
             metadata.sessionTaskIdentifierPlist = k_taskIdentifierDone;
             
-            dispatch_async(dispatch_get_main_queue(), ^{
-                if([selector isEqualToString:selectorLoadPlist] || [selector isEqualToString:selectorLoadModelView])
-                    metadata = [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
+            // Fix Main Thread for insertInformationPlist
+            if([selector isEqualToString:selectorLoadPlist] || [selector isEqualToString:selectorLoadModelView]) {
+                dispatch_async(dispatch_get_main_queue(), ^{
+                    if([selector isEqualToString:selectorLoadPlist] || [selector isEqualToString:selectorLoadModelView])
+                        metadata = [CCUtility insertInformationPlist:metadata directoryUser:_directoryUser];
+                    metadata = [[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:_activeUrl];
+                });
+            } else {
                 metadata = [[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:_activeUrl];
-            });
+            }
             
         } else {