X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=NJMapping.m;h=7df321ce232a0da3e96806464fa7cf00cea77be5;hp=a5f810ccd57b2ad20050f095056f5f7b6b3a04d9;hb=b18839d1b922bcf00b5ada21e1748b6d78c6773f;hpb=e2a4d830dd9817f6a515a3b1b6aa152d3bb98c2b diff --git a/NJMapping.m b/NJMapping.m index a5f810c..7df321c 100644 --- a/NJMapping.m +++ b/NJMapping.m @@ -19,14 +19,14 @@ return self; } -- (Target *)objectForKeyedSubscript:(NJInput *)input { +- (NJOutput *)objectForKeyedSubscript:(NJInput *)input { return input ? _entries[input.uid] : nil; } -- (void)setObject:(Target *)target forKeyedSubscript:(NJInput *)input { +- (void)setObject:(NJOutput *)output forKeyedSubscript:(NJInput *)input { if (input) { - if (target) - _entries[input.uid] = target; + if (output) + _entries[input.uid] = output; else [_entries removeObjectForKey:input.uid]; } @@ -42,4 +42,15 @@ return @{ @"name": _name, @"entries": entries }; } +- (BOOL)writeToURL:(NSURL *)url error:(NSError **)error { + [NSProcessInfo.processInfo disableSuddenTermination]; + NSDictionary *serialization = [self serialize]; + NSData *json = [NSJSONSerialization dataWithJSONObject:serialization + options:NSJSONWritingPrettyPrinted + error:error]; + BOOL success = json && [json writeToURL:url options:NSDataWritingAtomic error:error]; + [NSProcessInfo.processInfo enableSuddenTermination]; + return success; +} + @end