Domanda

Sto usando UIGestureRecognizer per la prima volta e voglio la mia app per l'esecuzione su iOS 3.0 in poi. Dal momento che Apple afferma chiaramente che la libreria è disponibile in iOS 3.2 e successive ho usato il seguente codice:

// Make sure that Gesture recognition technology is supportted by the device SDK version
if ([UIGestureRecognizer instancesRespondToSelector:@selector(initWithTarget:action:)])
{
    [self initGestureRecognizers];
}

A sorpresa, quando si esegue l'applicazione su l'unico obiettivo che ho, che SDK3.0 corsa, funziona benissimo.


I sostituito la condizione al seguente:

if ([[[UIDevice currentDevice] systemVersion] compare:@"3.2"] != NSOrderedAscending) 
{ 
    [self initGestureRecognizers]; 
}

Mi piacerebbe ottenere commenti su di esso.

Grazie

È stato utile?

Soluzione

Questo è probabilmente perché UIGestureRecognizer era considerata privata prima 3.2. Non stupitevi se alcune cose sono buggy o non del tutto il lavoro come previsto se si utilizza UIGestureRecognizer sotto 3.0.

Altri suggerimenti

Ci sono tonnellate di API non documentate in ogni release iOS e Apple fa parlare di questo. Tuttavia utilizzare di queste API non documentate è motivo di un negozio di rifiuto App. Ci può essere un rischio di rigetto da utilizzando un'API che in documentato in una data di rilascio / revisione del sistema operativo, ma documentato in un altro, entrambi i quali vostri supporti app.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top