<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Source/Main/OD/ODTapDetectingView.h</filename>
    </added>
    <added>
      <filename>Source/Main/OD/ODTapDetectingView.m</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -58,8 +58,8 @@
 		3AD97CE71009B1490037DEC4 /* ODDateAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AD97CE51009B1490037DEC4 /* ODDateAdditions.m */; };
 		3AD97DB41009C0610037DEC4 /* ODDateAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AD97CE51009B1490037DEC4 /* ODDateAdditions.m */; };
 		3AD97E251009F5F70037DEC4 /* ODDateAdditionsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AD97E241009F5F70037DEC4 /* ODDateAdditionsTests.m */; };
-		3ADCDCE710198F7500657E4E /* TapDetectingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ADCDCE510198F7500657E4E /* TapDetectingView.h */; };
-		3ADCDCE810198F7500657E4E /* TapDetectingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ADCDCE610198F7500657E4E /* TapDetectingView.m */; };
+		3ADCDCE710198F7500657E4E /* ODTapDetectingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ADCDCE510198F7500657E4E /* ODTapDetectingView.h */; };
+		3ADCDCE810198F7500657E4E /* ODTapDetectingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ADCDCE610198F7500657E4E /* ODTapDetectingView.m */; };
 		3AE36326100AC7880005FBA3 /* ODLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AE36319100AC1820005FBA3 /* ODLoadingView.m */; };
 		3AE49C551056351F00750B49 /* AdressBookCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE49C531056351F00750B49 /* AdressBookCell.h */; };
 		3AE49C561056351F00750B49 /* AdressBookCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AE49C541056351F00750B49 /* AdressBookCell.m */; };
@@ -125,8 +125,8 @@
 		3AD97CFE1009B3BE0037DEC4 /* LogicTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = &quot;LogicTests-Info.plist&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
 		3AD97E231009F5F70037DEC4 /* ODDateAdditionsTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ODDateAdditionsTests.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		3AD97E241009F5F70037DEC4 /* ODDateAdditionsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ODDateAdditionsTests.m; sourceTree = &quot;&lt;group&gt;&quot;; };
-		3ADCDCE510198F7500657E4E /* TapDetectingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TapDetectingView.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-		3ADCDCE610198F7500657E4E /* TapDetectingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TapDetectingView.m; sourceTree = &quot;&lt;group&gt;&quot;; };
+		3ADCDCE510198F7500657E4E /* ODTapDetectingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ODTapDetectingView.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		3ADCDCE610198F7500657E4E /* ODTapDetectingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ODTapDetectingView.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		3AE36318100AC1820005FBA3 /* ODLoadingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ODLoadingView.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		3AE36319100AC1820005FBA3 /* ODLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ODLoadingView.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		3AE49C531056351F00750B49 /* AdressBookCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdressBookCell.h; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -347,8 +347,8 @@
 		3A1EAAE81002C77800312CBC /* Views */ = {
 			isa = PBXGroup;
 			children = (
-				3ADCDCE510198F7500657E4E /* TapDetectingView.h */,
-				3ADCDCE610198F7500657E4E /* TapDetectingView.m */,
+				3ADCDCE510198F7500657E4E /* ODTapDetectingView.h */,
+				3ADCDCE610198F7500657E4E /* ODTapDetectingView.m */,
 				3A1EAAE91002C7A100312CBC /* ODHeaderView.h */,
 				3A1EAAEA1002C7A100312CBC /* ODHeaderView.m */,
 				3AE36318100AC1820005FBA3 /* ODLoadingView.h */,
@@ -437,7 +437,7 @@
 				3A1E9C7D0FFE37D000312CBC /* BaseDataSource.h in Headers */,
 				3A1EAAEB1002C7A100312CBC /* ODHeaderView.h in Headers */,
 				3AD97CE61009B1490037DEC4 /* ODDateAdditions.h in Headers */,
-				3ADCDCE710198F7500657E4E /* TapDetectingView.h in Headers */,
+				3ADCDCE710198F7500657E4E /* ODTapDetectingView.h in Headers */,
 				3A4BC3D5101FD38F00551DED /* ODShowMoreCell.h in Headers */,
 				3A4062C9102069DD004CCA4C /* ODNetworkManager.h in Headers */,
 				3AEA333D1031429C008D6BE1 /* ODStringAdditions.h in Headers */,
@@ -561,7 +561,7 @@
 				3A1E9C7E0FFE37D000312CBC /* BaseDataSource.m in Sources */,
 				3A1EAAEC1002C7A100312CBC /* ODHeaderView.m in Sources */,
 				3AD97CE71009B1490037DEC4 /* ODDateAdditions.m in Sources */,
-				3ADCDCE810198F7500657E4E /* TapDetectingView.m in Sources */,
+				3ADCDCE810198F7500657E4E /* ODTapDetectingView.m in Sources */,
 				3A4BC3D6101FD38F00551DED /* ODShowMoreCell.m in Sources */,
 				3A4062CA102069DD004CCA4C /* ODNetworkManager.m in Sources */,
 				3AEA333E1031429C008D6BE1 /* ODStringAdditions.m in Sources */,</diff>
      <filename>ObjectiveDump.xcodeproj/project.pbxproj</filename>
    </modified>
    <modified>
      <diff>@@ -7,6 +7,7 @@
 //
 
 #import &lt;UIKit/UIKit.h&gt;
+#import &lt;CoreData/CoreData.h&gt;
 
 @protocol BaseViewControllerSubclass &lt;NSObject&gt;
 
@@ -26,6 +27,9 @@
 // Cannot cancel, just ok button
 - (void)showUserErrorWithTitle:(NSString *)title message:(NSString *)message;
 
+// Get the context
+@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
+
 @end
 
 
@@ -34,6 +38,8 @@
 	id _object;
 	
 	BOOL _viewDidLoadCalled;
+	
+	NSManagedObjectContext *_managedObjectContext;
 }
 
 @property (nonatomic, retain) id object;
@@ -43,4 +49,7 @@
 - (void)showLoadingViewForText:(NSString *)loadingText;
 - (void)hideLoadingView;
 
+// Core Data
+- (BOOL)saveContextAndHandleErrors;
+
 @end</diff>
      <filename>Source/Main/OD/BaseViewController.h</filename>
    </modified>
    <modified>
      <diff>@@ -15,6 +15,7 @@
 
 @synthesize object=_object;
 @synthesize viewDidLoadCalled=_viewDidLoadCalled;
+@synthesize managedObjectContext=_managedObjectContext;
 
 #pragma mark -
 #pragma mark Initialisation
@@ -152,6 +153,40 @@
 }
 
 #pragma mark -
+#pragma mark Core Data
+
+- (BOOL)saveContextAndHandleErrors 
+{
+	BOOL success = YES;
+	
+	if ([self.managedObjectContext hasChanges]) {
+		for (id object in [self.managedObjectContext updatedObjects]) {
+			if (![[object changedValues] count]) {
+				[self.managedObjectContext refreshObject: object
+											mergeChanges: NO];
+			}
+		}
+		
+		NSError* error = nil;
+		if(![self.managedObjectContext save:&amp;error]) {
+			success = NO;
+			DLog(@&quot;Failed to save to data store: %@&quot;, [error localizedDescription]);
+			NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
+			if(detailedErrors != nil &amp;&amp; [detailedErrors count] &gt; 0) {
+				for(NSError* detailedError in detailedErrors) {
+					DLog(@&quot;  DetailedError: %@&quot;, [detailedError userInfo]);
+				}
+			}
+			else {
+				DLog(@&quot;  %@&quot;, [error userInfo]);
+			}
+		} 
+	}
+	
+	return success;  
+}
+
+#pragma mark -
 #pragma mark Execut Method When Notification Fire
 
 //help executing a method when a notification fire
@@ -168,6 +203,7 @@
 
 - (void)dealloc {
 	
+	[_managedObjectContext release];
     [_object release];
 	[super dealloc];
 }</diff>
      <filename>Source/Main/OD/BaseViewController.m</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>Source/Main/OD/TapDetectingView.h</filename>
    </removed>
    <removed>
      <filename>Source/Main/OD/TapDetectingView.m</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>d5e629f035fdd991109c0017159840a64fdc3226</id>
    </parent>
  </parents>
  <author>
    <name>Anthony Mittaz</name>
    <email>sync@me.com</email>
  </author>
  <url>http://github.com/sync/ObjectiveDump/commit/4021c46c138c89ee4da2275f52b8deeff1d3bdbb</url>
  <id>4021c46c138c89ee4da2275f52b8deeff1d3bdbb</id>
  <committed-date>2009-10-21T08:42:02-07:00</committed-date>
  <authored-date>2009-10-21T08:42:02-07:00</authored-date>
  <message>fixed dubplicate symbols</message>
  <tree>f70b0e77a67181b61063398126c00f1945a96acd</tree>
  <committer>
    <name>Anthony Mittaz</name>
    <email>sync@me.com</email>
  </committer>
</commit>
