覆盖ios的uniqueIdentifier方法

时间:2011-03-01 02:56:31

标签: iphone ios udid

我需要将一个不同的udid发送到我的数据库,以便进行一些测试。由于[UIDevice currentDevice] uniqueIdentifier]在近15个地方被调用,因此我很难进行代码更改然后进行测试。有没有办法暂时覆盖该方法并将另一个数字作为udid发送?

2 个答案:

答案 0 :(得分:2)

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

@interface UIDevice (RandomIdentifier)

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

@end

@implementation UIDevice (RandomIdentifier)

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

@end

答案 1 :(得分:1)

您应该能够在UIDevice上的类别中覆盖它。创建一个这样的标题:

@interface UIDevice (overrideId)

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

@end

然后是这样的.m:

@implementation UIDevice (overrideId)

- (NSString *)uniqueIdentifier {
    return @"whatever";
}

@end

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