这也是我需要解析参数到NSTimer。所以我想出了创建类别班,这对我有帮助。
以下是通过NSTimer创建Category类的步骤。
- 右键单击项目,选择 “新建文件”
- Cacoa触摸>的Objective-C类>接下来
- 给范畴:补充&类别上:
中的NSTimer
- .h文件中只创建propertyId
- in .m使用@dynamic合成它&创建setter,getter
- 将.h文件导入到您的文件中。
的NSTimer +使用的NSTimer additions.h文件
#import <Foundation/Foundation.h>
@interface NSTimer (additions)
@property(nonatomic,retain) NSString *additionalTag;
@end
的NSTimer + additions.m文件
#import "NSTimer+additions.h"
#import <objc/runtime.h>
NSString *const additionalTagKey = @"additionalTagKey";
@implementation NSTimer (additions)
@dynamic additionalTag;
- (void)setAdditionalTag:(NSString*)aObject
{
objc_setAssociatedObject(self, additionalTagKey, aObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (NSString*)additionalTag
{
return objc_getAssociatedObject(self, additionalTagKey);
}
@end
现在#import "NSTimer+additions.h"
在类
从计时器
-(void)demoMethod:(NSTimer *)timer{
NSLog(@"My Parameter: %@",timer.additionalTag);
}
许多步骤都参与,但希望你有点帮助传递参数的NSTimer
-(void)testDemoMethodPassTimer{
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(timerTick:)
userInfo:nil
repeats:YES];
timer.additionalTag = @"parameter passed to timer";
ClassA *testA = [[ClassA alloc]init];
STAssertNoThrows([testA testDemoMethod:timer]);
}
检索参数。 :)
是否要将参数传递给NSTimer以访问demoMethod:方法? – 2013-02-28 06:36:45
@Bhargavi是的! – Kiran 2013-02-28 09:04:09