diff --git a/Blog/EditorViewController.m b/Blog/EditorViewController.m index 1a8ab76..3e50362 100644 --- a/Blog/EditorViewController.m +++ b/Blog/EditorViewController.m @@ -212,15 +212,23 @@ #pragma mark - State restoration +static NSString *const StateRestorationPostKey = @"post"; +static NSString *const StateRestorationModifiedPostKey = @"modifiedPost"; +static NSString *const StateRestorationTextViewContentOffsetKey = @"textView.contentOffset"; + - (void)encodeRestorableStateWithCoder:(NSCoder *)coder { - [coder encodeObject:self.post forKey:@"post"]; - [coder encodeObject:self.modifiedPost forKey:@"modifiedPost"]; + NSLog(@"%@ encode restorable state with coder %@", self, coder); + [coder encodeObject:self.post forKey:StateRestorationPostKey]; + [coder encodeObject:self.modifiedPost forKey:StateRestorationModifiedPostKey]; + [coder encodeCGPoint:self.textView.contentOffset forKey:StateRestorationTextViewContentOffsetKey]; [super encodeRestorableStateWithCoder:coder]; } - (void)decodeRestorableStateWithCoder:(NSCoder *)coder { - self.post = [coder decodeObjectForKey:@"post"]; - self.modifiedPost = [coder decodeObjectForKey:@"modifiedPost"]; + NSLog(@"%@ decode restorable state with coder %@", self, coder); + self.post = [coder decodeObjectForKey:StateRestorationPostKey]; + self.modifiedPost = [coder decodeObjectForKey:StateRestorationModifiedPostKey]; + self.textView.contentOffset = [coder decodeCGPointForKey:StateRestorationTextViewContentOffsetKey]; [super decodeRestorableStateWithCoder:coder]; } diff --git a/Blog/PostCollection.m b/Blog/PostCollection.m index c5c64d7..6694b3d 100644 --- a/Blog/PostCollection.m +++ b/Blog/PostCollection.m @@ -19,18 +19,21 @@ return self; } +static NSString *const PostsKey = @"posts"; +static NSString *const TitleKey = @"title"; + - (id)initWithCoder:(NSCoder *)coder { self = [super init]; if (self) { - _title = [coder decodeObjectForKey:@"title"]; - _posts = [coder decodeObjectForKey:@"posts"]; + _title = [coder decodeObjectForKey:TitleKey]; + _posts = [coder decodeObjectForKey:PostsKey]; } return self; } - (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.title forKey:@"title"]; - [coder encodeObject:self.posts forKey:@"posts"]; + [coder encodeObject:self.title forKey:TitleKey]; + [coder encodeObject:self.posts forKey:PostsKey]; } @end diff --git a/Blog/PostsViewController.m b/Blog/PostsViewController.m index 0f27545..4c08f87 100644 --- a/Blog/PostsViewController.m +++ b/Blog/PostsViewController.m @@ -246,21 +246,26 @@ static const NSUInteger SectionPublished = 1; #pragma mark - State restoration +static NSString *const StateRestorationPostCollectionsKey = @"postCollections"; +static NSString *const StateRestorationBlogStatusDateKey = @"blogStatusDate"; +static NSString *const StateRestorationBlogStatusTextKey = @"blogStatusText"; +static NSString *const StateRestorationTabelViewContentOffsetKey = @"tableView.contentOffset"; + - (void)encodeRestorableStateWithCoder:(NSCoder *)coder { NSLog(@"%@ encode restorable state with coder %@", self, coder); - [coder encodeObject:self.postCollections forKey:@"postCollections"]; - [coder encodeObject:self.blogStatusDate forKey:@"blogStatusDate"]; - [coder encodeObject:self.blogStatusText forKey:@"blogStatusText"]; - [coder encodeCGPoint:self.tableView.contentOffset forKey:@"tableView.contentOffset"]; + [coder encodeObject:self.postCollections forKey:StateRestorationPostCollectionsKey]; + [coder encodeObject:self.blogStatusDate forKey:StateRestorationBlogStatusDateKey]; + [coder encodeObject:self.blogStatusText forKey:StateRestorationBlogStatusTextKey]; + [coder encodeCGPoint:self.tableView.contentOffset forKey:StateRestorationTabelViewContentOffsetKey]; [super encodeRestorableStateWithCoder:coder]; } - (void)decodeRestorableStateWithCoder:(NSCoder *)coder { NSLog(@"%@ decode restorable state with coder %@", self, coder); - self.postCollections = [coder decodeObjectForKey:@"postCollections"]; - self.blogStatusDate = [coder decodeObjectForKey:@"blogStatusDate"]; - self.blogStatusText = [coder decodeObjectForKey:@"blogStatusText"]; - self.tableView.contentOffset = [coder decodeCGPointForKey:@"tableView.contentOffset"]; + self.postCollections = [coder decodeObjectForKey:StateRestorationPostCollectionsKey]; + self.blogStatusDate = [coder decodeObjectForKey:StateRestorationBlogStatusDateKey]; + self.blogStatusText = [coder decodeObjectForKey:StateRestorationBlogStatusTextKey]; + self.tableView.contentOffset = [coder decodeCGPointForKey:StateRestorationTabelViewContentOffsetKey]; [super decodeRestorableStateWithCoder:coder]; } diff --git a/Blog/PreviewViewController.m b/Blog/PreviewViewController.m index 5da7070..3a9bc96 100644 --- a/Blog/PreviewViewController.m +++ b/Blog/PreviewViewController.m @@ -41,19 +41,24 @@ [self.webView loadHTMLString:@"" baseURL:nil]; } +#pragma mark - State restoration + +static NSString *const StateRestorationInitialRequestKey = @"initialRequest"; +static NSString *const StateRestorationWebViewRequestURLKey = @"webView.request.URL"; + - (void)encodeRestorableStateWithCoder:(NSCoder *)coder { - [coder encodeObject:self.initialRequest forKey:@"initialRequest"]; - [coder encodeObject:self.webView.request.URL forKey:@"webView.request.URL"]; + [coder encodeObject:self.initialRequest forKey:StateRestorationInitialRequestKey]; + [coder encodeObject:self.webView.request.URL forKey:StateRestorationWebViewRequestURLKey]; [super encodeRestorableStateWithCoder:coder]; } - (void)decodeRestorableStateWithCoder:(NSCoder *)coder { - NSURL *url = [coder decodeObjectForKey:@"webView.request.URL"]; + NSURL *url = [coder decodeObjectForKey:StateRestorationWebViewRequestURLKey]; if (url) { [self.webView loadRequest:[NSURLRequest requestWithURL:url]]; } else { - self.initialRequest = [coder decodeObjectForKey:@"initialRequest"]; + self.initialRequest = [coder decodeObjectForKey:StateRestorationInitialRequestKey]; } [super decodeRestorableStateWithCoder:coder]; }