私がやろうとしているのは、フィールドにタスクを入力できるアプリです。挿入を押して、その下の表に表示してください。テーブル(*table
)、フィールド(*taskField
)、ボタン(*insert
)、配列(*tasks
)があります。アプリを実行し、何かを入力して挿入を押しますが、テーブルに何も表示されません。また、すべての「IB」のものが正しく設定されていると思います。
これが私のコードです:
NSString *docPath()
{
NSArray *pathList = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
return [[pathList objectAtIndex:0] stringByAppendingPathComponent:@"data.td" ];
}
#import "CookViewController.h"
@interface CookViewController ()
@end
@implementation CookViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)addRec:(id)sender
{
NSString *t=[taskField text];
if ([t isEqualToString:@""]) {
return;
}
[tasks addObject:t];
[table reloadData];
[taskField setText:@""];
[taskField resignFirstResponder];
[tasks writeToFile:docPath()
atomically:YES];
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
[tasks removeObjectAtIndex:indexPath.row]; [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; }
}
#pragma mark - Table View management
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [tasks count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *c= [table dequeueReusableCellWithIdentifier:@"Cell"];
if (!c) {
c= [[ UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
NSString *item = [tasks objectAtIndex:[indexPath row]];
[[c textLabel] setText:item];
return c;
}
@end