/*
* 例程说明:
* 创建一个Date.text文件,获取当前的日期,将日期格式为“2013/08/12 22:50:00”的形式。
* 然后以一秒记录一次,将新的时间存入到文件中。
*/
/*
* 新建 WriteDate.h 文件及 WriteDate 类声明
*/
#import <Foundation/Foundation.h>
@interface WriteDate : NSObject
- (void) runWrite;
@end
/*
* 新建 WriteDate.m 文件及 WriteDate 类实现
*/
#import "WriteDate.h"
@implementation WriteDate
- (void) runWrite {
// 创建文件管理对象
NSFileManager *fileManager = [NSFileManager defaultManager];
// 获取当前用户 路径 /Users/xxh
NSString *path = NSHomeDirectory();
// 文件路径
NSString *filePath = [path stringByAppendingPathComponent:@"Desktop/Date.text"];
// 新建文件
BOOL success = [fileManager createFileAtPath:filePath contents:nil attributes:nil];
if (success) {
NSLog(@"create success!");
}
// 文件写操作对象
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
// 创建定时器
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:) userInfo:fileHandle repeats:YES];
}
- (void) timerAction:(NSTimer *)timer {
NSFileHandle *fileHandle = timer.userInfo;
// 文件指针移动到文件未尾
[fileHandle seekToEndOfFile];
// 限制关闭条件
static int n = 1; // 写10后关闭定时器
// 获取当前时间
NSDate *nowDate = [NSDate date];
// 时间格式化
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
[dateFormater setDateFormat:@"YYYY/MM/DD HH:mm:ss"];
// 返回时间字符串
NSString *dateString = [dateFormater stringFromDate:nowDate];
// 添加换行符
dateString = [dateString stringByAppendingString:@"\n"];
// 通过数据编码 转换成数据对象
NSData *data = [dateString dataUsingEncoding:NSUTF8StringEncoding];
// 写入文件
[fileHandle writeData:data];
if (n == 10) {
[timer invalidate]; // 关闭定时间
[fileHandle closeFile]; // 关闭文件句柄
}
n++;
}
@end
/*
* main 方法
*/
#import <Foundation/Foundation.h>
#include "WriteDate.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
WriteDate *writeDate = [[WriteDate alloc] init];
[writeDate runWrite];
}
[[NSRunLoop currentRunLoop] run];
return 0;
}