私がやりたいこと:
- ユーザーは 10 を入力し
UITextField
、 をタップしUIButton
ます。 UILabel
10 と表示され、UITextField
空白になります。- ユーザーは 5 を入力し
UITextField
、 をタップしUIButton
ます。 UILable
15 と表示され、UITextField
再び空白になります。
次のコードを使用すると、入力した数値が保存されてラベルに表示されますが、最初に入力した数値だけでなく、合計を追加して表示するように配列に指示するにはどうすればよいですか?
時間
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (nonatomic, strong) IBOutlet UILabel *label;
@property (nonatomic, strong) IBOutlet UITextField *field;
@property (nonatomic, strong) NSString *dataFilePath;
@property (nonatomic, strong) NSString *docsDir;
@property (nonatomic, strong) NSArray *dirPaths;
@property (nonatomic, strong) NSFileManager *fileMgr;
@property (nonatomic, strong) NSMutableArray *array;
- (IBAction)saveNumber:(id)sender;
@end
メートル
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize label, field, dataFilePath, docsDir, fileMgr, dirPaths, array;
- (void)viewDidLoad
{
[super viewDidLoad];
fileMgr = [NSFileManager defaultManager];
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
dataFilePath = [[NSString alloc]initWithString:[docsDir stringByAppendingPathComponent:@"data.archive"]];
if ([fileMgr fileExistsAtPath:dataFilePath])
{
array = [NSKeyedUnarchiver unarchiveObjectWithFile:dataFilePath];
self.label.text = [array objectAtIndex:0];
}
else
{
array = [[NSMutableArray alloc] init];
}
}
- (IBAction)saveNumber:(id)sender
{
[array addObject:self.field.text];
[NSKeyedArchiver archiveRootObject:array toFile:dataFilePath];
[field setText:@""];
[label setText:[array objectAtIndex:0]];
}