make the error throwable
This commit is contained in:
parent
198ebe722b
commit
447df655df
@ -32,6 +32,6 @@ extension MFViewController: MoleculeDelegateProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public extension MFViewController {
|
public extension MFViewController {
|
||||||
@objc func parsePageJSON() {
|
@objc func parsePageJSON() throws {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -96,7 +96,15 @@
|
|||||||
- (BOOL)shouldFinishProcessingLoad:(nonnull MVMCoreLoadObject *)loadObject error:(MVMCoreErrorObject *_Nonnull *_Nonnull)error {
|
- (BOOL)shouldFinishProcessingLoad:(nonnull MVMCoreLoadObject *)loadObject error:(MVMCoreErrorObject *_Nonnull *_Nonnull)error {
|
||||||
self.pageType = loadObject.pageType;
|
self.pageType = loadObject.pageType;
|
||||||
self.loadObject = loadObject;
|
self.loadObject = loadObject;
|
||||||
[self parsePageJSON];
|
|
||||||
|
NSError *parseError = nil;
|
||||||
|
[self parsePageJSONAndReturnError:&parseError];
|
||||||
|
if (parseError) {
|
||||||
|
if (error) {
|
||||||
|
*error = [MVMCoreErrorObject createErrorObjectForNSError:parseError location:[[MVMCoreLoadHandler sharedGlobal] errorLocationForRequest:loadObject]];
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Verifies all modules needed are loaded.
|
// Verifies all modules needed are loaded.
|
||||||
return [MFViewController verifyRequiredModulesLoadedForLoadObject:loadObject error:error];
|
return [MFViewController verifyRequiredModulesLoadedForLoadObject:loadObject error:error];
|
||||||
@ -250,7 +258,8 @@
|
|||||||
|
|
||||||
- (BOOL)newPageLoaded:(nonnull NSDictionary *)page {
|
- (BOOL)newPageLoaded:(nonnull NSDictionary *)page {
|
||||||
self.loadObject.pageJSON = page;
|
self.loadObject.pageJSON = page;
|
||||||
[self parsePageJSON];
|
NSError *parseError = nil;
|
||||||
|
[self parsePageJSONAndReturnError:&parseError];
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,15 +14,11 @@ public protocol TemplateProtocol: class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public extension TemplateProtocol where Self: MFViewController {
|
public extension TemplateProtocol where Self: MFViewController {
|
||||||
func parseTemplateJSON() {
|
func parseTemplateJSON() throws {
|
||||||
guard let pageJSON = self.loadObject?.pageJSON else { return }
|
guard let pageJSON = self.loadObject?.pageJSON else { return }
|
||||||
do {
|
let data = try JSONSerialization.data(withJSONObject: pageJSON)
|
||||||
let data = try JSONSerialization.data(withJSONObject: pageJSON)
|
let decoder = JSONDecoder()
|
||||||
let decoder = JSONDecoder()
|
let templateModel = try decoder.decode(TemplateModel.self, from: data)
|
||||||
let templateModel = try decoder.decode(TemplateModel.self, from: data)
|
self.templateModel = templateModel
|
||||||
self.templateModel = templateModel
|
|
||||||
} catch {
|
|
||||||
MVMCoreUILoggingHandler.logDebugMessage(withDelegate: "error: \(error)")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,8 +14,8 @@ open class MoleculeListTemplate: ThreeLayerTableViewController, TemplateProtocol
|
|||||||
var observer: NSKeyValueObservation?
|
var observer: NSKeyValueObservation?
|
||||||
|
|
||||||
public var templateModel: ListPageTemplateModel?
|
public var templateModel: ListPageTemplateModel?
|
||||||
public override func parsePageJSON() {
|
@objc public override func parsePageJSON() throws {
|
||||||
parseTemplateJSON()
|
try parseTemplateJSON()
|
||||||
}
|
}
|
||||||
|
|
||||||
open override var loadObject: MVMCoreLoadObject? {
|
open override var loadObject: MVMCoreLoadObject? {
|
||||||
|
|||||||
@ -12,8 +12,8 @@ open class MoleculeStackTemplate: ThreeLayerViewController, TemplateProtocol {
|
|||||||
|
|
||||||
var observer: NSKeyValueObservation?
|
var observer: NSKeyValueObservation?
|
||||||
public var templateModel: StackPageTemplateModel?
|
public var templateModel: StackPageTemplateModel?
|
||||||
public override func parsePageJSON() {
|
public override func parsePageJSON() throws {
|
||||||
parseTemplateJSON()
|
try parseTemplateJSON()
|
||||||
}
|
}
|
||||||
|
|
||||||
open override var loadObject: MVMCoreLoadObject? {
|
open override var loadObject: MVMCoreLoadObject? {
|
||||||
|
|||||||
@ -11,8 +11,8 @@ import UIKit
|
|||||||
@objcMembers open class ThreeLayerTemplate: ThreeLayerViewController, TemplateProtocol {
|
@objcMembers open class ThreeLayerTemplate: ThreeLayerViewController, TemplateProtocol {
|
||||||
|
|
||||||
public var templateModel: ThreeLayerPageTemplateModel?
|
public var templateModel: ThreeLayerPageTemplateModel?
|
||||||
public override func parsePageJSON() {
|
@objc public override func parsePageJSON() throws {
|
||||||
parseTemplateJSON()
|
try parseTemplateJSON()
|
||||||
}
|
}
|
||||||
|
|
||||||
override open func viewDidLoad() {
|
override open func viewDidLoad() {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user