title: Data not being saved to core data
body: <p>I am using Xcode 5 compiling exclusively for iOS 7.</p>
  
  <p>I am reading data from a UTF8 txt file to populate a core data entity. After reading the data, I log it to the console. The data is there. I populate the entity and log the entity to the console. I save it. No error. No crash.</p>
  
  <p>I see 3 files on the device:</p>
  
  <ul>
  <li>MyDatabase.sqlite</li>
  <li>MyDatabase.sqlite-shm</li>
  <li>MyDatabase.sqlite-wal</li>
  </ul>
  
  <p>When the app starts and <code>MyDatabase.sqlite</code> is created empty it has 40 kb. At this point the <code>shm</code> file is 32kb and the <code>wal</code> file is zero.</p>
  
  <p>After I write the data to the database, the <code>wal</code> files grows to 1,7 Mb but the other two files keep their initial sizes or in other words, the data is not being saved to the database. I have confirmed that by inspecting the sqlite file with an external database viewer.</p>
  
  <p>This is the code I am using:</p>
  
  <pre><code>// NSArray *arrayOfYears = ... 
  // this contains an array of numbers read from the CSV file
  // at this point the array contains numbers in text format
  
  // NSArray *arrayOfBrands = ...
  // this is an array of brands
  
  for (int i=0; i&lt;[arrayOfBrands count]; i++) {
  
              Cars *car = [NSEntityDescription insertNewObjectForEntityForName:@"Cars" inManagedObjectContext:context];
  
              car.brand = [arrayOfBrands objectAtIndex:i];
              car.year = [NSNumber numberWithInt:[[arrayOfYears objectAtIndex:i] integerValue]];
  
              NSError *error = nil;
              if (![context save:&amp;error]) {
                  // Handle the error.
                  NSLog(@"error = %@", error);
              }
  }
  </code></pre>
  
  <p>This produces no error or crash. It goes like it was saving. I have increased mySql debug level to 3 and this is what I see on console...</p>
  
  <p><strong>when the table is created empty</strong></p>
  
  <pre><code>CoreData: annotation: Connecting to sqlite database file at "/var/mobile/Applications/BB22334C4-550A-4C44-B17A-3F02062EC687/Documents/MyDatabase.sqlite"
  CoreData: annotation: creating schema.
  CoreData: sql: pragma page_size=4096
  CoreData: sql: pragma auto_vacuum=2
  CoreData: sql: BEGIN EXCLUSIVE
  CoreData: sql: SELECT TBL_NAME FROM SQLITE_MASTER WHERE TBL_NAME = 'Z_METADATA'
  CoreData: sql: CREATE TABLE ZCARS ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZYEAR INTEGER, ZBRAND VARCHAR ) 
  CoreData: annotation: Creating primary key table.
  CoreData: sql: CREATE TABLE Z_PRIMARYKEY (Z_ENT INTEGER PRIMARY KEY, Z_NAME VARCHAR, Z_SUPER INTEGER, Z_MAX INTEGER)
  CoreData: sql: INSERT INTO Z_PRIMARYKEY(Z_ENT, Z_NAME, Z_SUPER, Z_MAX) VALUES(1, 'Cars', 0, 0)
  CoreData: sql: CREATE TABLE Z_METADATA (Z_VERSION INTEGER PRIMARY KEY, Z_UUID VARCHAR(255), Z_PLIST BLOB)
  CoreData: sql: SELECT TBL_NAME FROM SQLITE_MASTER WHERE TBL_NAME = 'Z_METADATA'
  CoreData: sql: DELETE FROM Z_METADATA WHERE Z_VERSION = ?
  CoreData: details: SQLite bind[0] = 1
  CoreData: sql: INSERT INTO Z_METADATA (Z_VERSION, Z_UUID, Z_PLIST) VALUES (?, ?, ?)
  CoreData: details: SQLite bind[0] = 1
  CoreData: details: SQLite bind[1] = "C6E2268B-6792-4298-B292-5025E5BDE31A"
  CoreData: details: SQLite bind[2] = &lt;NSData len=455&gt;
  CoreData: annotation: Saving new meta data; version = 1 ; UUID = C6E2268B-6792-4298-B292-5025E5BDE31A
  CoreData: sql: COMMIT
  CoreData: sql: pragma journal_mode=wal
  CoreData: sql: pragma journal_mode=wal
  CoreData: sql: pragma cache_size=200
  CoreData: sql: SELECT Z_VERSION, Z_UUID, Z_PLIST FROM Z_METADATA
  </code></pre>
  
  <p><strong>after saving one brand/year</strong></p>
  
  <pre><code>CoreData: sql: BEGIN EXCLUSIVE
  CoreData: sql: SELECT Z_MAX FROM Z_PRIMARYKEY WHERE Z_ENT = ?
  CoreData: annotation: getting max pk for entityID = 4
  CoreData: sql: UPDATE Z_PRIMARYKEY SET Z_MAX = ? WHERE Z_ENT = ? AND Z_MAX = ?
  CoreData: annotation: updating max pk for entityID = 4 with old = 0 and new = 1
  CoreData: sql: COMMIT
  CoreData: sql: BEGIN EXCLUSIVE
  CoreData: sql: INSERT INTO ZTABULEIRO(Z_PK, Z_ENT, Z_OPT, ZYEAR, ZBRAND) VALUES(?, ?, ?, ?, ?)
  CoreData: details: SQLite bind[0] = (int64)1
  CoreData: details: SQLite bind[1] = (int64)4
  CoreData: details: SQLite bind[2] = (int64)1
  CoreData: details: SQLite bind[3] = "FORD"
  CoreData: details: SQLite bind[4] = (int64)1989
  CoreData: sql: COMMIT
  CoreData: annotation: Changing objectID 0x14e71730 &lt;x-coredata:///Cars/t38FA86EE-4124-4FD7-A8C0-8CE7BBAC73782&gt; to 0x14e73ef0 &lt;x-coredata://C6E3368B-6792-4298-B292-5025E5BDE31A/Cars/p1&gt;
  CoreData: sql: pragma page_count
  CoreData: annotation: sql execution time: 0.0014s
  CoreData: sql: pragma freelist_count
  CoreData: annotation: sql execution time: 0.0016s
  </code></pre>
  
  <p>one strange thing I see here is the year variable like int64 when I have defined it like integer 16. Why it is using integer 64 is beyond me...</p>
  
  <p>The data is not being saved at all. The data is there. If I log the arrays of data to console I see the data. If I log the entities populated before saving I see the data.</p>
  
  <p>I am testing this on a device running iOS 7. Thanks.</p>
  
  <p>What am I missing? How do I debug that?</p>