Hvordan finne ut om koden din kjører på en iPhone eller en iPhone3G?

stemmer
22

Jeg prøver å finne ut om min kode kjører på en iPhone eller en iPhone3G. Mitt første forsøk var å bruke UIDevice klassen i UIKit, men både iPhone og iPhone 3G returnere de samme svarene:

NSLog([[UIDevice currentDevice] name]); // Name of the phone as named by user
NSLog([[UIDevice currentDevice] uniqueIdentifier]); // A GUID like string
NSLog([[UIDevice currentDevice] systemName]); // iPhone OS 
NSLog([[UIDevice currentDevice] systemVersion]); // 2.2.1
NSLog([[UIDevice currentDevice] model]); // iPhone on both devices
NSLog([[UIDevice currentDevice] localizedModel]); // iPhone on both devices

De er de eneste parametrene som UIDevice lar deg søke.

Jeg så litt på Foundation Work, men har ennå ikke funnet de riktige samtaler.

Jeg er sikker på at det er noen maskinvare jeg kunne spørre (for eksempel noe i stedstjenester), men det virker som en hack. Vet noen en slett måte å bestemme dette?

Publisert på 27/03/2009 klokken 00:01
kilden bruker
På andre språk...                            


3 svar

stemmer
21

IPhone kjører OS X. Her er hvordan du finner din maskinvareplattform på en Macintosh-skrivebordet. Her er hvordan på en iPhone. Det er det samme ting.

Kort sagt, sysctlbyname("hw.machine", str, sz, 0, 0)vil skrive navnet plattformen i str. Dette skjer for å være "iPhone1,1" eller "iPhone1,2" for henholdsvis iPhone og iPhone 3G.

Svarte 27/03/2009 kl. 01:19
kilden bruker

stemmer
6

Jeg er ikke en iPhone-utvikler, men se etter den underliggende plattform i stedet for plattform evner er nesten alltid feil valg. Hvis iPhone får den funksjonaliteten du trenger, vil du fortsatt ikke klarer å kjøre. Det er også en sjanse for at du vil gjøre feil beslutning på neste iPhone 4.0 (eller hva det heter).

Svarte 27/03/2009 kl. 00:43
kilden bruker

stemmer
0

Min gjetning er at det er funksjonalitet på iPhone som ikke er på iPhon3G at programvaren er opptatt av. Mitt forslag er å spørre om det bestemt maskinvare i stedet for å endre programvaren atferd basert på plattformen.

For eksempel. stedet for å sjekke for tilgjengeligheten av GPS ved å spørre er dette en iPhone eller iPhone3G spørsmål om tilgjengeligheten av GPS og gå derfra. På den måten koden vil fungere på alle plattformer (iphone / ipod touch / iphone 3G)

Svarte 27/03/2009 kl. 00:49
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more