Add try-catch

This commit is contained in:
Ali
2021-08-06 09:58:23 +02:00
parent 24a8662813
commit 759f1c79bb
3 changed files with 24 additions and 3 deletions

View File

@@ -56,6 +56,8 @@
+ (MTQueue * _Nonnull)contextQueue;
+ (void)performWithObjCTry:(dispatch_block_t _Nonnull)block;
- (instancetype _Nonnull)initWithSerialization:(id<MTSerialization> _Nonnull)serialization encryptionProvider:(id<EncryptionProvider> _Nonnull)encryptionProvider apiEnvironment:(MTApiEnvironment * _Nonnull)apiEnvironment isTestingEnvironment:(bool)isTestingEnvironment useTempAuthKeys:(bool)useTempAuthKeys;
- (void)performBatchUpdates:(void (^ _Nonnull)())block;

View File

@@ -283,6 +283,13 @@ static int32_t fixedTimeDifferenceValue = 0;
return queue;
}
+ (void)performWithObjCTry:(dispatch_block_t _Nonnull)block {
@try {
block();
} @finally {
}
}
- (void)cleanup
{
NSDictionary *datacenterAuthActions = _datacenterAuthActions;

View File

@@ -1093,13 +1093,25 @@ class Keychain: NSObject, MTKeychain {
}
func setObject(_ object: Any!, forKey aKey: String!, group: String!) {
let data = NSKeyedArchiver.archivedData(withRootObject: object)
self.set(group + ":" + aKey, data)
guard let object = object else {
return
}
MTContext.perform(objCTry: {
let data = NSKeyedArchiver.archivedData(withRootObject: object)
self.set(group + ":" + aKey, data)
})
}
func object(forKey aKey: String!, group: String!) -> Any! {
guard let aKey = aKey, let group = group else {
return nil
}
if let data = self.get(group + ":" + aKey) {
return NSKeyedUnarchiver.unarchiveObject(with: data as Data)
var result: Any?
MTContext.perform(objCTry: {
result = NSKeyedUnarchiver.unarchiveObject(with: data as Data)
})
return result
}
return nil
}