2017-06-03 30 views
0

下面是我的省電方法CoreData不保存屬性作爲字符串

-(void)createData 
{ 
    // // get date and time and store in two separate variables 
    NSDate *today = [NSDate date]; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"dd/MM/yyyy"]; 
    NSString *dateString = [dateFormat stringFromDate:today]; 
    NSLog(@"Date is: %@",dateString); 
    NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init]; 
    timeFormatter.dateFormat = @"HH:mm"; 
    NSString *timeString = [timeFormatter stringFromDate:today]; 
    NSLog(@"Time is: %@",timeString); 
    // 
    // 

    ReminderInfo *reminderInfo = [NSEntityDescription insertNewObjectForEntityForName:@"ReminderInfo" inManagedObjectContext:[DataManager sharedDataManager].managedObjectContext]; 

    reminderInfo.date = today; 
    reminderInfo.reminderTime = @"06:30"; 
    reminderInfo.medicationType = @"Cream"; 
    [[DataManager sharedDataManager] saveReminderInfo:reminderInfo]; 
    NSLog(@"reminder created"); 

} 

下面是從控制檯輸出:

<ReminderInfo: 0x6080002887a0> (entity: ReminderInfo; id: 0xd000000000480002 <x-coredata://8055FB8D-6E6A-44B2-9456-3E6932ACBE32/ReminderInfo/p18> ; data: { 
    date = "2017-06-03 08:03:40 +0000"; 
    medicationType = Cream; 
    reminderTime = "06:30"; 
}) 

medicationType是String類型的屬性。正如你可以從控制檯看到的,在Cream中沒有任何""。這可能是沒有保存任何東西到Coredata的原因嗎?

+0

不,不能 –

回答

0

嘗試並首先聲明「cream」爲字符串。

ie NSString *medType = @"Cream"; 然後在保存方法中使用medType。

0

缺乏引號與數據類型無關。將Core Data對象打印到Xcode控制檯時,如果字符串中沒有空格,則不使用引號。你所看到的正是你所使用的字符串所預期的。如果將字符串更改爲@"Cream cheese",則會看到引號,但數據類型相同。如果它不是字符串,Core Core Data將無法將該值(數字類型可能)轉換爲Cream