5

对于 NSString,我有一个具有以下类别的应用程序:

@interface NSDate(ISO8601Parsing)



//This method is the one that does all the work. All the others are convenience methods.

+ (NSDate *)dateWithString:(NSString *)str strictly:(BOOL)strict getRange:(out NSRange *)outRange;

+ (NSDate *)dateWithString:(NSString *)str strictly:(BOOL)strict;



//Strictly: NO.

+ (NSDate *)dateWithString:(NSString *)str timeSeparator:(unichar)timeSep getRange:(out NSRange *)outRange;

+ (NSDate *)dateWithString:(NSString *)str timeSeparator:(unichar)timeSep;

+ (NSDate *)dateWithString:(NSString *)str getRange:(out NSRange *)outRange;

+ (NSDate *)dateWithString:(NSString *)str;



@end

该类别在最终应用程序中,而不是在静态库中。当我在iPhone(3GS和iOS4)上使用该应用程序时,应用程序和测试都没有问题。当我使用 iPhone 模拟器时,我添加的方法不会被调用。调试我已经看到 xcode '跳过'调用并返回 null,非常奇怪。有什么建议吗?谢谢。让

4

2 回答 2

2

我在使用 wsdl2objc 生成的代码时遇到了同样的问题(请参阅问题)。我通过重命名一种方法来解决它:

+ (NSDate *)dateWithString:(NSString *)str

例如

+ (NSDate *)wsdl2objcDateWithString:(NSString *)str;

看起来上面的代码和新的私有 API 之间存在冲突,但我不确定。

于 2010-06-23T07:32:27.533 回答
0

rehos 是正确的 - 谢谢

只是为了让像我这样的菜鸟更加清楚;

NSDate+ISO8601Parsing.m 和 .h 中的重命名方法

使用重命名的方法
+(NSDate *)deserializeNode:(xmlNodePtr)cur

于 2010-10-01T15:09:43.490 回答