2012-02-29 38 views

回答

2

你不能将NSTimer序列化为plist,因为NSTimer不支持NSCoding协议。

  • 选择
  • 时间间隔
  • 用户信息

选择器可NSString的,则可以使用转换为SEL NSSelectorFromString: 可以在NSDictionary'es的NSArray的收集与存储的密钥:

SEL sel = NSSelectorFromString(@"method:");

在这种情况下,您可以从字典中创建计时器:

NSArray* timers = [NSArray arrayWithContentsOfFile:@"timers.plist"]; 
id target; // you cannot store target in plist, you must use one target for all timers 

for (NSDictionary* dict in timers) 
{ 
    NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:[[dict objectForKey:@"interval"] intValue] target:target selector:NSSelectorFromString([dict objectForKey:@"selector"]) userInfo:[dict objectForKey:@"userinfo"] repeats:NO]; 
} 
相关问题