2016-04-03 21 views
8

L'obiettivo è aggiornare la condizione sottostante alla sintassi Swift 2.2, che consiglia di utilizzare #selector or explicitly constructing a Selector.L'argomento #selector non può riferirsi a una proprietà

if activityViewController.respondsToSelector("popoverPresentationController") { 

} 

Tuttavia, utilizzando il seguito come sostituto non riesce e genera un errore che dice Argument of #selector cannot refer to a property

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

} 

Qual è il modo giusto per attuare tale controllo con #selector?

+0

popOverPresentationController è un non di proprietà una funzione Destra? – Darko

risposta

2

È possibile utilizzare il seguente:

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

} 

O se si target iOS solo

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

} 

Oppure, se il codice non si limita a iOS

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

    } 
#endif