Я пытаюсь использовать TPMultiLayoutViewController в проекте, использующем ARC, но сталкиваюсь со следующей ошибкой: -
Неявное преобразование указателя Objective C в 'const void *' запрещено ARC
Я действительно не уверен, как справиться с этим; нужно ли явно конвертировать? и как бы я это сделал?
- (void)addAttributesForSubviewHierarchy:(UIView*)view associatedWithSubviewHierarchy:(UIView*)associatedView toTable:(NSMutableDictionary*)table { [table setObject:[self attributesForView:view] forKey:[NSValue valueWithPointer:associatedView]]; if ( ![self shouldDescendIntoSubviewsOfView:view] ) return; for ( UIView *subview in view.subviews ) { UIView *associatedSubView = (view == associatedView ? subview : [self findAssociatedViewForView:subview amongViews:associatedView.subviews]); if ( associatedSubView ) { [self addAttributesForSubviewHierarchy:subview associatedWithSubviewHierarchy:associatedSubView toTable:table]; } } }
Вы получаете ошибку из-за этого:
[NSValue valueWithPointer:associatedView]
Так как valueWithPointer: занимает const char *. Вы можете обойти это, выполнив то, что предложил @ user1139069:
valueWithPointer:
const char *
[NSValue valueWithPointer:(__bridge void *)associatedView]
Что делать, если вы используете [NSValue valueWithNonretainedObject:] вместо [NSValue valueWithPointer:]?
[NSValue valueWithNonretainedObject:]
[NSValue valueWithPointer:]