2016-04-03 11 views
8

Celem jest zaktualizowanie poniższego warunku do składni Swift 2.2, która zaleca użycie #selector or explicitly constructing a Selector.Argument #selector nie może odnosić się do właściwości

if activityViewController.respondsToSelector("popoverPresentationController") { 

} 

Jednak użycie poniżej jako zamiennik nie powiedzie się i generuje błąd mówiący Argument of #selector cannot refer to a property

if activityViewController.respondsToSelector(#selector(popoverPresentationController)) { 

} 

Jaka jest właściwa droga do realizacji tego sprawdzanie #selector?

+0

popOverPresentationController to nie własność a func. Dobrze? – Darko

Odpowiedz

2

można użyć następujących:

if activityViewController.respondsToSelector(Selector("popoverPresentationController")) { 

} 

Albo jeśli cel iOS tylko

if #available(iOS 8.0, *) { 
    // You can use the property like this 
    activityViewController.popoverPresentationController?.sourceView = sourceView 
} else { 

} 

Lub, jeśli kod nie jest ograniczony do iOS

#if os(iOS) 
    if #available(iOS 8.0, *) { 
     activityViewController.popoverPresentationController?.sourceView = sourceView 
    } else { 

    } 
#endif 
Powiązane problemy