2011-04-24 24 views
0

我只是試驗和嘗試學習。我有一個簡單的視圖,帶有1個文本框,標籤和保存按鈕。當按下按鈕時,我想將文本框中的數據保存到核心數據並更新標籤。由於NSManagedObjectContext幫助

內DailyClinicalPerformanceRecord.m

- (IBAction)btnSave:(id)sender { 

DailyClinicalPerformanceRecord* delegate = [[UIApplication sharedApplication] delegate]; 
NSManagedObjectContext* managedObjectContext = delegate.managedObjectContext; 
NSManagedObject* newForm; 


newForm = [NSEntityDescription insertNewObjectForEntityForName:@"DCPR" inManagedObjectContext:managedObjectContext]; 
[newForm setValue:txtIncidentNum.text forKey:@"indidentNum"]; 

txtIncidentNum.text = @""; 

NSError *error; 
[managedObjectContext save:&error]; 
status.text = @"Form Saved"; 

} 

內DailyClinicalPerformanceRecord.h

#import <UIKit/UIKit.h> 
#import <CoreData/CoreData.h> 


@interface DailyClinicalPerformanceRecord : UIViewController<UIApplicationDelegate>{ 

UITextField *txtIncidentNum; 
UILabel *status; 
} 

@property (nonatomic, retain) IBOutlet UITextField *txtIncidentNum; 
@property (nonatomic, retain) IBOutlet UILabel *status; 

- (IBAction)btnSave:(id)sender; 
- (IBAction)btnBack:(id)sender; 
- (void)dismissKeyboard; 


@end 

我得到錯誤:
/Users/specked/Programs/EMTDocs/EMTDocs/DailyClinicalPerformanceRecord.m:67: error: request for member 'managedObjectContext' in something not a structure or union

和警告 /Users/specked/Programs/EMTDocs/EMTDocs/DailyClinicalPerformanceRecord.m:66: warning: type 'id <UIApplicationDelegate>' does not conform to the 'NSCoding' protocol

回答

0

由於您沒有提供有關問題的詳細信息,因此要對您的問題給出明確的答案有點困難。但這裏有幾件事情要檢查:

  • 檢查你在Interface Builder作出了txtIncidentNum和連接狀態的對象與btnSave方法一起
  • 確保btnSave被稱爲(NSLog的是方便)
  • 確保managedObjectContext不是零

此外,一些與此線樣的魚腥味:

DailyClinicalPerformanceRecord* delegate = [[UIApplication sharedApplication] delegate]; 

可疑的是它在DailyClinicalPerformanceRecord.m裏面。如果此代碼位於DailyClinicalPerformanceRecord.m中,並且DailyClinicalPerformanceRecord是您的代理,則可以通過self獲取managedObjectContext,而不是跳過這些環節。或者,這可能表明存在更大的問題和/或組織問題。

希望其中的一件物品能讓你走上正軌。如果沒有,請在您按保存按鈕時更詳細地說明您的問題,並提供有關正在發生和未發生的事情的更多詳情。

+0

您確定的行是阻止我編譯的行,但這是我在教程中看到的行。 – Specked 2011-04-24 03:15:25

+0

@Specked這確實是一個更大的問題。它看起來像DailyClinicalPerformanceRecord不是你的應用程序委託(尤其是因爲它是UIViewController的一個子類),儘管你像對待它那樣對待它。如果你發佈了你的整個項目,我相信我們可以弄清楚發生了什麼,但也許是時候退一步閱讀Apple文檔了。下面是一個很好的開始:http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhone101/Articles/00_Introduction.html – 2011-04-24 17:39:22