[英]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.