簡體   English   中英

在ARC項目中使用非ARC庫中的方法?

[英]Using methods from non-ARC libraries in an ARC project?

我正在使用優秀的非ARC項目: https//github.com/boredzo/iso-8601-date-formatter

我正在嘗試使用此庫中的以下方法,該方法在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];

當函數返回時, theTimeZone將被設置為函數的輸出值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM