2013-08-19 81 views
0

是通過輕敲細胞在tableView我創造新的NSManagedObject實例並做回滾到以前viewController:在同一viewController將NSManagedObject設置爲零;

User *user = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
[self.delegate setSupervisorGUID:user.server_id supervisorTitle:user.name]; 
[self.navigationController popViewControllerAnimated:YES]; 

我有一個取消按鈕還有什麼回滾到以前viewController但不設置新對象(歸零用戶對象):

[self.delegate setSupervisorGUID:[NSNull null] supervisorTitle:@"User not set"]; 
[self.navigationController popViewControllerAnimated:YES]; 

這樣的伎倆,但我認爲這是邏輯上不正確,我也有一個警告這裏。我怎樣才能以正確的方式做到這一點?

UPDATE

警告是:

不相容指針類型發送 'NSNull *' 到類型的參數 '的NSString *'

以下爲-setSupervisorGUID:supervisorTitle:

定義
- (void) setSupervisorGUID:(NSString *) supervisorId supervisorTitle:(NSString *) supervisorTitle 
{ 
    if ([formData[@"visit_type_id"] isEqualToString:supervisorId]) return; 

    [formData setObject:supervisorId forKey:@"supervisor_id"]; 
    [formData setObject:supervisorTitle forKey:@"supervisorTitle"]; 
    supervisorCell.detailTextLabel.text = supervisorTitle; 
    [self.tableView reloadData]; 
} 
+0

如何定義'setSupervisorGUID:supervisorTitle:'委託方法,並得到什麼警告? –

+0

'NSNull'旨在*僅用於表示數組中的*空*值。 – danielbeard

+0

@MartinR,請參閱更新後的帖子。 – Alex

回答

1

NSNull *NSString *不兼容。但是您可以撥打

[self.delegate setSupervisorGUID:nil supervisorTitle:@"User not set"]; 

而是在代理方法中檢查supervisorId == nil