2016-12-02 56 views
1

我是IOS中的新成員。對不起我的英文週一,那個時候面臨一個問題。我的問題是我在我的項目中使用了CoreData。在我的項目TableViewCell從左到右滾動。刷卡是正確的,但我想要那個單元格被刷過並改變數據庫值。特殊的indexpath.row在DataBase表中被輕掃和相同的行內容改變。TableViewCell從左向右滑動並更改DataBase表中的內容(CoreData)

TableViewCell刷卡通過SWTableViewCell This Tutorial

- (void)swipeableTableViewCell:(SWTableViewCell *)cell scrollingToState:(SWCellState)state{ 
if(state ==1){ 
NSLog(@"animation start"); 
} 
else 
NSLog(@"animation end"); 
} 

我這麼試了很多天,但不更新在TableViewCell刷卡同一行的數據庫表,我該怎麼辦這個,請大家幫忙,三江源

Swipe my TableView Image

更新答案

- (void)swipeableTableViewCell:(SWTableViewCell *)cell scrollingToState:(SWCellState)state{ 
if(state ==1){ 
NSIndexPath *indexPaths = [self.table_view indexPathForCell:cell]; 

    NSManagedObject *selectedDevices = [self.devices objectAtIndex:[self.table_view indexPathForCell:cell].row]; 
    NSLog(@"device %@",selectedDevices); 
    [selectedDevices setValue:@"OnTime" forKeyPath:@"time"]; 

    NSError *saveError = nil; 
    [self.managedObjectContext save:&saveError]; 
    if (saveError) 
    { 

    } 
    else 
    { 


    } 
} 
+0

顯示'TableView'的'dataSource'。 – Adeel

+0

我看到你正在從'NSManagedObject'設置'pillname','doseImg'和'time'值。當用戶滑動時你想用NSManagedObject做什麼? – Adeel

+0

@Adeel當用戶刷「時間」更新。這意味着用戶刷卡並更新數據庫表中設置的當前時間 –

回答

0

根據你需要做以下簡單步驟來實現你想要

  1. 什麼設置單元格的tagcellForRowAtIndexPath:方法,即cell.tag = indexPath.row,這樣就可以從devices陣列後得到記錄和意見的討論
  2. 在小區接入相關NSManagedObjectdelegate方法和更新的time
  3. 值在持久存儲
  4. 刷新細胞保存這些更改剛剛更新

的代碼會是這樣的:

NSInteger index = cell.tag; 
NSManagedObject *device = [self.devices objectAtIndex:index]; 
[device setValue:[NSDate date] forKey:@"tine"]; 
NSError *error; 

if ([context save:&error]) { 
    [self.tableView reloadRowsAtIndexPaths:[NSIndexPath indexPathForRow:index inSection:0] withRowAnimation:UITableViewRowAnimationAutomatic]; 
} 
+0

原因:' - [NSIndexPath計數]:無法識別的選擇器發送到實例0xc000000000000016' 錯誤顯示波紋管 –

+0

應用程序在哪一行崩潰? – Adeel

+0

檢查我的更新問題在「錯誤」 –