2 개의 컨트롤러, AssignmentViewController 및 UITableViewController가 있습니다. 과제가 만들어지고 저장된 버튼을 클릭 할 때마다 과제 객체를 UITableViewController (위임 사용)에 보내야합니다. TableView 다음 NSMutableArray 파일에 보관해야합니다 (TableView이 응용 프로그램에 대한 보관/보관을 수행해야합니다).보관/보관 위임을 사용하여 TableView에서 데이터를 보관 하시겠습니까?
TableView가로드 될 때마다 배열을 보관 취소하고 숙제 개체를 테이블 셀에 표시해야합니다.
코드가 시작되었지만 실제로 잘못되거나 잘못된 작업을 실제로 알지 못합니다.
앱이이 순서대로 작동해야합니다. 할당 정보를 입력하고 저장 -> 위임을 사용하여 TableViewController에 새 할당 객체 보내기 -> NSMutableArray의 객체를 파일에 보관 -> 테이블보기가 화면에 나타날 때마다 배열을 저장 해제하고 할당 객체를 셀에 표시하십시오.
AssignmentViewController.h
@interface Assignment : UIViewController
<
UITextViewDelegate,
AssignmentTableControllerDelegate
//Error:Cannot find protocol declaration "AssignmentTableControllerDelegate"
>
@property(nonatomic) IBOutlet UITextField *ClassNameField;
@property(nonatomic) IBOutlet UILabel *ClassNameLabel;
@property(nonatomic) IBOutlet UITextField *AssignmentTitleField;
@property(nonatomic) IBOutlet UILabel *AssignmentTitleLabel;
@property (nonatomic, strong) Homework *homeworkAssignment;
- (IBAction)Save:(UIButton *)sender;
@end
AssignmentViewController.m
- (IBAction)Save:(UIButton *)sender {
self.homeworkAssignment = [[Homework alloc] init];
self.homeworkAssignment.className = self.ClassNameField.text;
self.homeworkAssignment.assignmentTitle = self.AssignmentTitleField.text;
//Sending info over to TableController
self.assignmentTableController.delegate= self;
self.assignmentTableController.homeworkInTable.className= self.ClassNameField.text;
self.assignmentTableController.homeworkInTable.assignmentTitle=self.AssignmentTitleField.text;
AssignmentTABLEController.h
#import "Assignment.h"
@protocol AssignmentTableControllerDelegate;
@interface AssignmentTableController : UITableViewController
@property (nonatomic, strong) Homework *homeworkInTable;
@property (nonatomic, assign) id <AssignmentTableControllerDelegate> delegate;
@property (nonatomic,strong) NSMutableArray *MyHomeworkArray;
-(IBAction)ArchiveData:(id)sender;
@end
@protocol AssignmentTableControllerDelegate <NSObject>
-(NSMutableArray *)UnarchiveData;
@end
Assignme : 여기
내가 가진 무엇 ntTABLECONTROLLER.M는-(void)ArchiveData:(id)sender
{
[self.MyHomeworkArray addObject:self.homeworkInTable];
NSString *filePath = [self dataFilePath];//file created
//Archive my object
[NSKeyedArchiver archiveRootObject:self.MyHomeworkArray toFile:filePath];
}
-(NSMutableArray *)UnarchiveData
{
Homework *archivedHomework = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
//Error:use of undeclared identifier:filePath^^
}
내가 그렇게 내가 잘못 많은 프로그래머 알고이 새로운 오전 (내가 한 모두는이 2 개 개의 메소드를 추가했다). 나는 위임과 함께 AssignmentViewController에서 정보를 올바르게 전달하고 있다고 생각합니다. 하지만 나는 정말로 보관/보관 취소하지 않을 것이라고 확신합니다. 보관/보관 취소 코드를 분리 한 다음 표에 표시하는 방법을 잘 모르겠습니다.