覆盖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 

不要忘记释放之前再次将其删除。

+0

打倒我吧。 +1 – 2011-03-01 03:15:02

您可以在UIDevice上创建一个类别并覆盖uniqueIdentifier以返回一个随机值。

@interface UIDevice (RandomIdentifier) 

@property (nonatomic, retain, readonly) NSString *uniqueIdentifier 

@end 

@implementation UIDevice (RandomIdentifier) 

- (NSString *)uniqueIdentifier 
{ 
    return @"Randomly generated string"; 
} 

@end