Ios 在ARC项目中使用非ARC库中的方法?

Ios 在ARC项目中使用非ARC库中的方法?,ios,objective-c,cocoa-touch,automatic-ref-counting,Ios,Objective C,Cocoa Touch,Automatic Ref Counting,但是,我使用的是优秀的非ARC项目: 我尝试使用此库中的以下方法,该库在ARC项目中是非ARC的: - (NSDate *) dateFromString:(NSString *)string timeZone:(out NSTimeZone **)outTimeZone; 我试过: group.updatedAt = [formatter dateFromString:someString timeZone:[NSTimeZone localTimeZone]]; group.updated

但是,我使用的是优秀的非ARC项目:

我尝试使用此库中的以下方法,该库在ARC项目中是非ARC的:

- (NSDate *) dateFromString:(NSString *)string timeZone:(out NSTimeZone **)outTimeZone;
我试过:

group.updatedAt = [formatter dateFromString:someString timeZone:[NSTimeZone localTimeZone]];
group.updatedAt = [formatter dateFromString:someString timeZone:*__autorelease [NSTimeZone localTimeZone]];
group.updatedAt = [formatter dateFromString:someString timeZone:(*__autoreleasing [NSTimeZone localTimeZone]] *);
group.updatedAt = [formatter dateFromString:someString timeZone:[[NSTimeZone localTimeZone] autorelease]];
请注意,我对iOS相当陌生,因此我没有任何内存管理经验

但在所有这些尝试中,我收到了以下错误消息:

Implicit conversion of an Objective-C pointer to 'NSTimeZone *__autoreleasing *' is disallowed with ARC

那么如何在ARC项目中使用非ARC库的方法呢?

NSTimeZone是一个输出参数,因此需要将指针传递给指针,如下所示:

NSTimeZone *theTimeZone = nil;
group.updatedAt = [formatter dateFromString:someString timeZone:&theTimeZone];

当函数返回时,
timeZone
将被设置为函数的输出值。

@dasblinkenlight查看我对问题的更新,变量是否必须设置为nil,或者是否可以设置为[NSTimeZone localTimeZone],只需再次阅读您的问题,因此基本上,它只需要任何时区变量,函数做了它想做的事情?如何获取输出本地时区的函数@dasblinkenlight事实上,我没有意识到这个函数的确切功能,它只是将它设置为UTC时区,然后告诉您它最初来自哪个时区,对吗?@GangstaGraham:
dateFromString:timezone:
没有设置任何东西;它解析字符串,其中应该有一个时区,并返回日期(直接)和时区(通过指针)。因此,将时区指定为“Z”的字符串将获得UTC时区,而包含偏移量(如“-0800”)的字符串将获得具有该偏移量的时区。