覆盖ios的uniqueIdentifier方法
问题描述:
为了少数测试目的,我需要发送一个不同的udid到我的数据库。由于[UIDevice currentDevice] uniqueIdentifier]在近15个地方被调用,所以我很难进行代码更改,然后进行测试。有没有办法重写该方法一段时间,并发送另一个号码为udid?覆盖ios的uniqueIdentifier方法
答
您应该可以在UIDevice的类别中覆盖它。创建这样一个标题:
@interface UIDevice (overrideId)
@property (nonatomic,readonly,retain) NSString *uniqueIdentifier
@end
然后一个.M是这样的:
@implementation UIDevice (overrideId)
- (NSString *)uniqueIdentifier {
return @"whatever";
}
@end
不要忘记释放之前再次将其删除。
答
您可以在UIDevice上创建一个类别并覆盖uniqueIdentifier以返回一个随机值。
@interface UIDevice (RandomIdentifier)
@property (nonatomic, retain, readonly) NSString *uniqueIdentifier
@end
@implementation UIDevice (RandomIdentifier)
- (NSString *)uniqueIdentifier
{
return @"Randomly generated string";
}
@end
打倒我吧。 +1 – 2011-03-01 03:15:02