2016-11-30 2 views
4

Offenbar, für reagieren native beim Upgrade auf Xcode 8. Ich habe this Leitfaden folgen, um den Fehler zu beheben Ich habe immer noch den folgenden Fehler, wenn meine App versucht, eine zu laden <ScrollView/> Komponente.Reaction native RCTCustomScrollView defekt nach dem Upgrade auf Xcode8

- (void)setRefreshControl:(RCTRefreshControl *)refreshControl 
{ 
    if (refreshControl) { 
    [refreshControl removeFromSuperview]; 
    } 
    refreshControl = refreshControl; 
    [self addSubview:refreshControl]; 
} 

- (void)removeReactSubview:(UIView *)subview 
{ 
    if ([subview isKindOfClass:[RCTRefreshControl class]]) { 
    _scrollView.refreshControl = nil; 
    } else { 
    RCTAssert(_contentView == subview, @"Attempted to remove non-existent subview"); 
    _contentView = nil; 
    [subview removeFromSuperview]; 
    } 
} 

Alles scheint zu funktionieren gut, wenn ich die iOS 10.1.1 läuft auf einem Gerät laufen:

[RCTCustomScrollView refreshControl]: unrecognized selector sent to instance 0x16099e00

Der Code in meinem RCTScrollView.m, dass jeder das Problem scheint zu denken, verursacht wird unten gezeigt , aber wenn ich ein Gerät mit 9.3 versuche, stürzt es ab, wenn es versucht, eine <ScrollView/> zu laden.

Wichtiger Hinweis - Ich betreiben reagieren nativer 0,28 und ist in einer angespannten Situation, wo ich jetzt nicht aktualisieren kann, so muß ich manuell die Korrekturen machen.

Antwort

0

Die einzige Lösung, ich fand, ist dies zu RCTScrollView.m gehen und ersetzen [_scrollView refreshControl] mit [_scrollView respondsToSelector: @selector(refreshControl)]

- (NSArray<UIView *> *)reactSubviews 
{ 
    if (_contentView && [_scrollView respondsToSelector: @selector(refreshControl)]) { 
    return @[_contentView, [_scrollView refreshControl]]; 
    } 
    return _contentView ? @[_contentView] : @[]; 
} 
0

Ich weiß, das ist ein älterer Beitrag, aber für Xcode 8, iOS 9.3 (iPad 2/iPad Mini), Reactive Native 0.24.1, habe ich diese Änderung in RCTScrollView.m als Fix gemacht.

@implementation RCTCustomScrollView 
{ 
    __weak UIView *_dockedHeaderView; 

// Added the following line 
RCTRefreshControl *_refreshControl; 
} 
// Also added this 
@synthesize refreshControl = _refreshControl; 
Verwandte Themen