Muutama minuutti sitten Apple julkaisi iOS beta 6 4 iOS-sovelluskehittäjille. Uudessa iOS 6 beta 4:ssä on koontiversio 10A5376, mutta joillekin se näkyy versiona beta 3, ja toisille alla oleva virhe ilmestyy palautusta yritettäessä. Toistaiseksi näyttää siltä, että Apple-järjestelmässä on joitain ongelmia, mutta se oli odotettavissa ottaen huomioon, että puhumme beta-versiosta. iOS 6:n uusi beetaversio on saatavilla myös Applen verkkosivuston kehittäjille omistetussa portaalissa, joten jos et voi ladata sitä terminaalista, voit ladata sen sieltä.
Tilikehys
-
Kun pyydät pääsyä Facebook-tileihin, ainoa asetussanakirjassasi vaadittava avain on
ACFacebookAppIdKey
.ACFacebookPermissionGroupKey
jaACFacebookAppVersionKey
on nyt vanhentunut.Jos pyydät kirjallista lupaa allaACFacebookPermissionsKey
, Kutenpublish_stream
, sinun on annettava arvoACFacebookAudienceKey
, joka voi olla yksiACFacebookAudienceEveryone
,ACFacebookAudienceFriends
taiACFacebookAudienceOnlyMe
.
Address Book
-
Kiinteä: Kun sovellus on tuoreessa tietosuojatilassa ja yrittää esittää a
ABNewPersonViewController
, käyttäjä ei voi hylätä näkymäohjainta oikein, vaikka käyttäjä sallisi pääsyn yhteystietoihin. Käyttäjän on pakko sulkea sovellus ja käynnistää se uudelleen. -
Yhteystietojen käyttöoikeuden pyytäminen:
- Käyttäjät voivat myöntää tai estää pääsyn yhteystietoihin sovelluskohtaisesti. Pyydä pääsyä yhteystietoihin soittamalla numeroon
ABAddressBookRequestAccessWithCompletion
toiminto soittamisen jälkeenABAddressBookCreateWithOptions
toimia.ABAddressBookRequestAccessWithCompletion
toiminto ei estä sovellusta, kun käyttäjää pyydetään myöntämään tai kieltämään pääsy. Kunnes käyttöoikeus on myönnetty,ABAddressBookRef
objekti ei sisällä yhteystietoja, ja kaikki yhteystietojen muokkaamisyritykset epäonnistuvat akABOperationNotPermittedByUserError
virhe. Käyttäjä saa kehotteen vain ensimmäisen kerran, kun käyttöoikeutta pyydetään; mahdolliset myöhemmät puhelut numeroonABAddressBookCreateWithOptions
käyttää olemassa olevia käyttöoikeuksia. Täydennyskäsittelijä kutsutaan mielivaltaiseen jonoon. JosABAddressBookRef
objektia käytetään koko sovelluksessa, niin kaikki käyttö on lähetettävä samaan jonoon käyttöä vartenABAddressBookRef
lankaturvallisella tavalla.
- Käyttäjät voivat myöntää tai estää pääsyn yhteystietoihin sovelluskohtaisesti. Pyydä pääsyä yhteystietoihin soittamalla numeroon
-
Tarkistetaan käyttöoikeuden tilaa:
- Sovellus voi käyttää valtuutustilan sovellusliittymää tarkistaakseen, voiko se käyttää yhteystietoja, kalentereita, muistutuksia tai valokuvakirjastoa. Tämä API on riippumaton pyynnön käyttöliittymästä, eikä se kehota käyttäjää myöntämään tai estämään käyttöoikeutta. Tämän API:n avulla sovellus voi säätää niiden käyttöliittymäelementtien näyttöä, jotka pääsevät tietoluokkaan. Jos esimerkiksi yhteystietoihin pääsy on valtuutettu tai sitä ei ole määritetty, käyttöliittymäpainike voidaan näyttää yhteystiedon valitsemista varten.
- Osoitekirjaa varten soita
ABAddressBookGetAuthorizationStatus
toiminto. Tapahtumapakettia varten soita numeroonauthorizationStatusForEntityType:
luokan menetelmäEKEventStore
. Omaisuuskirjastoa varten soita numeroonauthorizationStatus
luokan menetelmäALAssetsLibrary
. Palautettavien tila-arvojen merkitys on seuraava:- Valtuutuksen tilaa ei ole määritetty—Käyttäjä ei ole vielä tehnyt valintaa siitä, pääseekö tämä sovellus tietoluokkaan.
- Valtuutuksen tila rajoitettu-Tällä sovelluksella ei ole lupaa käyttää tietoluokkaa. Käyttäjä ei voi muuttaa tämän sovelluksen tilaa, mikä saattaa johtua aktiivisista rajoituksista, kuten käytössä olevista lapsilukkoista.
- Valtuutuksen tila evätty-Käyttäjä on nimenomaisesti evännyt pääsyn tämän sovelluksen tietoluokkaan.
- Valtuutuksen tila Valtuutettu-Tämä sovellus on valtuutettu käyttämään tietoluokkaa.
Apple TV
-
Kiinteä: Joissakin tapauksissa näytössä voi näkyä väärä resoluutio. Käynnistä Apple TV uudelleen, jotta se palaa oikeaan resoluutioon.
-
Kiinteä: Apple TV saattaa käynnistyä uudelleen Remote-sovelluksen käytön aikana.
-
Kiinteä: Apple TV saattaa käynnistyä uudelleen, kun järjestelmän kieltä vaihdetaan.
-
Kiinteä: Photo Stream ei lataudu, kun kirjaudut sisään toisen kerran. Ratkaise ongelma käynnistämällä Apple TV uudelleen.
-
Musiikki ei toistu valokuvadiaesitysten aikana.
-
Näytönsäästäjä saattaa palata käyttämään oletuskuvia päivityksen asentamisen jälkeen.
Bonjour
-
-
NSNetService
luokan ja CFNetService API:t eivät sisällä oletusarvoisesti P2P-liittymiä. Sovelluksen on käytettävä Bonjouria, jotta se voi selata, rekisteröidä tai ratkaista palveluita P2P-rajapintojen kauttaDNSService*()
Alla mainitut API:t. -
Asetetaan interfaceIndex-parametriksi
kDNSServiceInterfaceIndexAny
seuraavissa API:t eivät sisällä oletusarvoisesti P2P-liittymiä. Jos haluat sisällyttää P2P-liitännät, sinun on nyt asetettavakDNSServiceFlagsIncludeP2P
lippua käytettäessäkDNSServiceInterfaceIndexAny
tai asetainterfaceIndex
ettäkDNSServiceInterfaceIndexP2P
. Sovellusliittymillä, joita asia koskee, on:DNSServiceBrowse
DNSServiceRegister
DNSServiceResolve
DNSServiceRegisterRecord
DNSServiceQueryRecord
Sanakirja
-
Kiinteä: Sanakirjoissa on tunnettu ongelma, kun yritetään määritellä sanaa millä tahansa muulla kielellä kuin englannin tai japanin kielellä. Kun viitekirjasto esitetään, käyttäjälle annetaan mahdollisuus ladata sanakirja - lataus ei välttämättä käynnisty. Käyttäjä voi hylätä latauspyynnön napauttamalla ponnahdusikkunan ulkopuolella iPadissa tai napauttamalla Valmis-painiketta iPhonessa tai iPod touchissa.
Tapahtumasarja
-
Kalenterien tai muistutusten käyttöoikeuden pyytäminen:
- Käyttäjät voivat myöntää tai estää pääsyn tapahtuma- ja muistutustietoihin sovelluskohtaisesti. Voit pyytää pääsyä tapahtumaan ja/tai muistutuspäivämäärään soittamalla numeroon
requestAccessToEntityType:completion:
: menetelmäEKEventStore
. Tämä ei estä sovellusta, kun käyttäjää pyydetään myöntämään tai estämään pääsy. Ennen kuin jollekin entiteettityypille on myönnetty käyttöoikeus, tapahtumasäilö ei sisällä kalentereita kyseiselle entiteettityypille ja kaikki tietojen tallennusyritykset epäonnistuvat. - Käyttäjä saa kehotteen vain ensimmäisen kerran, kun käyttöoikeutta pyydetään; mahdolliset myöhemmät ilmentymät
EKEventStore
käyttää olemassa olevia käyttöoikeuksia. Täydennyskäsittelijä kutsutaan mielivaltaiseen jonoon.
- Käyttäjät voivat myöntää tai estää pääsyn tapahtuma- ja muistutustietoihin sovelluskohtaisesti. Voit pyytää pääsyä tapahtumaan ja/tai muistutuspäivämäärään soittamalla numeroon
Game Center
-
Kiinteä: Kun luot uuden Game Center -tilin sovelluksen sisällä iPadissa, ponnahdusikkuna, jossa voit valita syntymäpäiväsi kuukauden, tulee näkyviin ilman valittavaa sisältöä.
-
-
authenticate
menetelmäGKLocalPlayer
on poistettu. Todennus alkaa automaattisesti, kun viimeistelyn käsittelijä on asetettu. -
iOS 6 beta 4:stä alkaen,
GKGameCenterViewController
singletonia ei enää tueta. -
iOS 6 beta 4:stä alkaen,
GKScore+Sharing.h file
ja niihin liittyvät luokat poistetaan.
iCloud
-
Kun luot iCloud-tilin, voit käyttää mitä tahansa sähköpostipohjaista Apple ID:tä tai olemassa olevaa iCloud-tiliäsi. Jos sinulla oli MobileMe-tili, jota et siirtänyt iCloudiin, voit käyttää tätä Apple ID:tä uuden iCloud-tilin luomiseen (mitään aiemmista MobileMe-tiedoistasi ei tarvitse olla käytössä iOS:ssä). Käyttöönottoportaali. Ota iCloudin hallintaprofiili käyttöön siirtymällä iOS-hallintaportaalin App ID -osioon ja määrittämällä sovellustunnuksesi iCloudille. Kun olet ottanut App ID:n käyttöön iCloudille, luo hallintaprofiilisi uudelleen ottaaksesi ne käyttöön iCloudissa.
icloud.com
sähköpostiosoitteet ovat nyt saatavilla iCloud-sähköpostin käyttäjille. Käyttäjät, jotka rekisteröivät uusia Apple ID -tunnuksia tai ottavat Mail-palvelun käyttöön iCloud-tilillään ensimmäistä kertaa, saavat automaattisesti@icloud.com
sähköpostiosoite a:n sijaanme.com
sähköpostiosoite. iCloud-käyttäjät@me.com
osoitteet, joita on käytetty iOS 6 beta 3:n tai uudemman kanssa, saavat@icloud.com
sähköpostiosoite, joka vastaa heidän omaansa@me.com
osoite.icloud.com
sähköpostia ei voi lähettää osoitteesta www.icloud.com. Käyttäjien tulee käyttää http://beta.icloud.com tällä hetkellä, jos he haluavat lähettää sähköpostinsa verkkoselaimellaicloud.com
osoite.@icloud.com
osoitteet lisätään kahden viikon kuluessa iOS 6:n ensimmäisestä käytöstä.
-
-
setSortDescriptors:
menetelmäNSMetadataQuery
ei ole tuettu. -
iOS 6:ssä Data Protectionilla suojattuja tiedostoja ei voi käyttää iCloud Storage API:iden kanssa.
-
Tiedostonimien kirjainkoolla ei ole merkitystä OS X:ssä, mutta iOS:ssä. Tämä voi johtaa ongelmiin käytettäessä iCloudia tiedostojen jakamiseen kahden alustan välillä. iOS:ssä sinun tulee välttää luomasta tiedostoja, joiden nimet eroavat vain kirjainkoon mukaan.
-
Koordinoitujen lukutoimintojen käyttäytyminen iCloud-dokumenteissa on muuttunut:Aiemmissa iOS-julkaisuissa, kun sovelluksesi suoritti koordinoidun lukutoiminnon tiedostolle tai paketille ja iCloud-demoni havaitsi, että tuotteesta oli saatavilla uudempi versio, koordinoitu lukutoiminto estettiin, kunnes kohteen uudempi versio ladattiin ja kirjoitettu levylle.
iOS 6 beta 3:sta alkaen, kun aloitat koordinoidun lukutoiminnon tiedostolle tai paketille, jolle sinulla on jo paikallinen versio, koordinoitu luku myönnetään mahdollisimman pian ja uusi versio, jos sellainen on, ladataan tausta. Tämä puhelu estetään lataussyistä vain, jos sinulla ei ole tiedoston versiota saatavilla paikallisesti.
Lisäksi, kun tiedosto on ristiriidassa, iCloud-daemon ei odota, kunnes sillä on kaikki tiedoston ristiriidan häviäjät käytettävissä, jotta tiedosto saataisiin sovelluksesi käyttöön. Se asettaa ristiriitaisen tiedoston eri versiot saataville niin pian kuin mahdollista. Sovelluksesi voi käyttää olemassa olevaa tiedostojen koordinointia ja
UIDocument
takaisinsoittoja, joista ilmoitetaan, kun konfliktin häviäjät on ladattu ja saatavilla.
iTunes
-
iTunes 10.6.3 vaaditaan iOS SDK 6.0:lle.
-
iOS:n aiemmat julkiset betaversiot eivät voi enää ladata iTunes Match -kappaleita.
Sijainti
-
iOS 6:n beta 4:ssä uuteen luetteloon tehtiin muutoksia
CLActivityType
ydinpaikalla:- korvata
CLActivityTypeVehicularNavigation
withCLActivityTypeAutomotiveNavigation
. - Lisää
CLActivityTypeOtherNavigation
muihin ajoneuvojen navigointiin, esim. veneisiin, juniin tai lentokoneisiin.
- korvata
Kartat
-
iOS 6:ssa ja sitä uudemmissa versioissa Map Kit on rakennettu Applen isännöimälle uudelle infrastruktuurille. Aiemmat iOS-versiot käyttävät edelleen Googlen palvelua. Reitityssovellukset, jotka eivät määritä kattavuustiedostoa kehityksen aikana, näkyvät aina Mapsin reitityshakutuloksissa.
- API-yhteensopivuus säilyy (katso tunnetut ongelmat alla).
- Simulaattori tukee nyt karttoja.
- Karttatiedot kehittyvät edelleen – tällä hetkellä saatavilla on vain rajoitettu määrä korkearesoluutioisia satelliittikuvia.
-
Reitityssovellusten peittotiedostojen testausta ja virheenkorjausta tuetaan vain kehityksen aikana Xcode Run -työnkulun kautta. (Voit määrittää kattavuustiedoston tietylle Run-mallille käyttämällä kaavioeditorin Suorita-osion Asetukset-osiota.) Sovellukset, jotka on arkistoitu ja jaettu (App Storen ulkopuolella) laitteisiin, eivät pääse käsiksi sovelluksen kattavuustiedostoihin. .
-
Kiinteä: Maps ei lähennä nykyiseen sijaintiin, kun se käynnistetään kolmannen osapuolen sovelluksesta.
lehtikioski
-
Kiinteä: Vain yksinkertaiset HTTP-lataukset toimivat Lehtikioskissa.
vastakirja
-
Kuvaus-kenttä on nyt pakollinen kenttä passille. Kaikkia ilman sitä luotuja kortteja ei voida vahvistaa, eikä niitä voida käyttää.
-
Passbook Simulatorissa ei enää vaadi
https
/ssl
kun käytätwebServiceURL
nieltäessä passia. -
Kiinteä: Tarkastuskortteja ei voi näyttää lukitusnäytöllä.
-
Passit eivät enää palaa
background.png
ifstrip.png
ei sisälly passipakettiin. -
Sivuston sisältö
userInfo
sanakirja forPKPassLibraryDidChangeNotification
ovat muuttuneet poistettujen passien osalta. Katso uusimmasta dokumentaatiosta uuttauserInfo
sanakirja.
Turvallisuus
-
IOS 5 ei tue varmenteen allekirjoittamista MD5-allekirjoituksella. Varmista, että varmenteissa käytetään SHA1- tai SHA2-pohjaisia allekirjoitusalgoritmeja.
-
iOS 6:ssa on paranneltu kalenterin, muistutusten, yhteystietojen ja valokuvien tietosuojan hallintaa.
- Käyttäjät näkevät käyttöoikeusikkunat, kun sovellus yrittää käyttää jotakin näistä tietotyypeistä. Käyttäjä voi ottaa käyttöön ja poistaa käytöstä Asetukset > Tietosuoja.
- Kehittäjät voivat asettaa "tarkoitusmerkkijonon" jokaiselle eristetyn datan luokalle. iOS näyttää tämän merkkijonon käyttäjille auttaakseen heitä ymmärtämään, miksi heidän tietojaan pyydetään. Nämä merkkijonot voidaan lisätä Xcoden projektieditorilla, joka on Info-välilehdellä. Asiaankuuluvat avainten nimet alkavat merkkijonolla "Privacy -".
- Event Kit- ja Address Book -kehykseen on tehty muutoksia, jotka auttavat kehittäjiä käyttämään tätä ominaisuutta.
Simulaattori
-
Kiinteä: Sovelluksen poiston vahvistuspaneelin näkyminen iOS-simulaattorissa kestää hetken.
-
iOS Simulatorissa ei näytetä tietosuojavaroituksia sovelluksille, jotka käyttävät kuvia, yhteystietoja, kalenteria ja muistutuksia.
-
In-App Purchase -isännöidyn sisällön lataamista iOS-simulaattorissa ei tueta.
-
Kun yrität toistaa MP3-ääntä Simulaattorissa, kuulet sen sijaan poksahtavan äänen.
Jaettu valokuvavirta
-
Käyttäjien on siirryttävä kohtaan Asetukset > iCloud varmistaakseen, että he saavat Jaetun valokuvavirran ilmoitukset.
-
Jotta voit jakaa valokuvavirran iOS 6 -betaversion kanssa, sinun on kutsuttava joku hänen iCloud-sähköpostiosoitteellaan. muuten hän ei saa kutsua.
-
Päivittäminen iOS 6 beta 1:stä beta 2:een saa laitteesi lataamaan uudelleen kaikki jaetut valokuvavirtasi.
-
Shared Photo Stream -ominaisuus on asetettu pois päältä, kun päivitetään iOS 6:n beta 1:stä myöhempään julkaisuun. Oletusasetuksen tulee olla PÄÄLLÄ.
-
Kiinteä: Jaettujen valokuvavirtojen poistaminen käytöstä saattaa jättää kameran reagoimatta. Kamera-sovelluksen pakottaminen sulkee tämän ongelman.
sosiaalinen
-
Weibo näkyy Asetukset-sovelluksessa vain, jos kiinalainen näppäimistö on käytössä.
-
-
requestAccessToAccountsWithType:withCompletionHandler:
menetelmäACAccountStore
on nyt poistettu käytöstä. Päästäksesi käyttäjätileihin, käytärequestAccessToAccountsWithType:options:completion:
menetelmällä.Syötä tämän uuden menetelmän asetukset-parametrissanil
päästäksesi Twitter- ja Weibo-tileihin. Päästäksesi Facebook-tileihin, välitä sanakirja seuraavilla avaimilla (jotka on dokumentoituACAccountStore.h
):Kun pyydät pääsyä Facebook-tileihin, ainoa asetussanakirjassasi vaadittava avain on
ACFacebookAppIdKey
.ACFacebookPermissionGroupKey
jaACFacebookAppVersionKey
on nyt vanhentunut.Jos pyydät kirjallista lupaa allaACFacebookPermissionsKey
-kutenpublish_stream
– Sinun on annettava arvoACFacebookAudienceKey
, joka voi olla yksiACFacebookAudienceEveryone
,ACFacebookAudienceFriends
taiACFacebookAudienceOnlyMe
.Sinun ei pitäisi enää lisätä tätä sanakirjaa sovellukseesi
Info.plist
tiedostoa, kuten beta 1:ssä vaadittiin.
Status Bar
-
Nyt on mahdollista asettaa tilapalkin sävyparametreja sovelluksessasi
Info.plist
filee. Voit tehdä tämän varmistaaksesi, että tilapalkin väri vastaa sovelluksesi navigointipalkin väriä käynnistyksen aikana. Aseta tilapalkin sävy lisäämälläUIStatusBarTintParameters
avain sinunInfo.plist
filee. Tämän avaimen arvo on sanakirja, jossa on asianmukaiset arvot, jotka kuvaavat sovelluksesi käynnistyspalkkia. Sanakirjan sisällä pitäisi ollaUINavigationBar
avain, jonka arvo on myös sanakirja. Sanakirja sisältää alkuperäisen navigointipalkin tyylin (Style
avain) ja onko se läpikuultava (Translucent
avaimet). Jos navigointipalkki käyttää niitä, voit myös määrittää sen sävyn värin (TintColor
avain) tai sen mukautetun taustakuvan nimi (jaBackgroundImage
näppäin).
UIKit
-
iOS 5.1:ssa
UISplitViewController
luokka ottaa käyttöön liukuvan esitystyylin esittäessään vasemmanpuoleista näkymää (näkyy aiemmin vain Mailissa). Tätä tyyliä käytetään, kun esitys aloitetaan joko olemassa olevalla delegointimenetelmien tarjoamalla palkkipainikekohdalla tai pyyhkäisyeleellä oikeanpuoleisessa näkymässä. Tämän toiminnan ja kaikkien olemassa olevien sovellusliittymien, mukaan lukien sovellusliittymän, saavuttaminen ei vaadi ylimääräistä sovellusliittymän käyttöönottoaUIPopoverController
edustajan toimittama esimerkki – jatkaa toimintaansa entiseen tapaan. Jos ele ei tue sovelluksessasi, asetapresentsWithGesture
jaetun näkymän ohjaimesi ominaisuusNO
poistaa eleen käytöstä. Eleen poistamista käytöstä ei kuitenkaan suositella, koska sen käyttö säilyttää yhdenmukaisen käyttökokemuksen kaikissa sovelluksissa. -
Kiinteä: iOS 6:ssa on tehty muutoksia, jotta sinun ei enää tarvitse määrittää edustajaa ja ottaa käyttöön menetelmää yhden sormen ja yhden kosketuksen eletunnistimille. Tämä saa ne toimimaan hyvin
UIControl
esineitä. -
iOS 6:ssa ja uudemmissa
UIWebView
luokka maalaa sisällön asynkronisesti. -
Autorotaatio muuttuu iOS 6:ssa. iOS 6:ssa
shouldAutorotateToInterfaceOrientation:
menetelmäUIViewController
on vanhentunut. Sen sijaan kannattaa käyttääsupportedInterfaceOrientationsForWindow:
jashouldAutorotate
menetelmiä.- Enemmän vastuuta siirtyy sovellukselle ja sovelluksen edustajalle. Nyt iOS-säiliöt (esim
UINavigationController
) älä keskustele lastensa kanssa päättääkseen, pitäisikö heidän kiertää automaattisesti. Oletusarvoisesti sovelluksen ja näkymäohjaimen tuetut käyttöliittymäsuunnat on asetettuUIInterfaceOrientationMaskAll
iPad idiomille jaUIInterfaceOrientationMaskAllButUpsideDown
iPhone idiomille. - Näkymänohjaimen tuetut käyttöliittymäsuunnat voivat muuttua ajan myötä – jopa sovelluksen tuetut käyttöliittymäsuunnat voivat muuttua ajan myötä. Järjestelmä kysyy ylimmäiseltä koko näytön ohjaimelta (yleensä juurinäkymäohjaimelta) sen tuetut käyttöliittymäsuunnat aina, kun laite pyörii tai aina, kun näkymäohjain esitetään koko näytön modaalisella esitystyylillä. Lisäksi tuetut suunnat haetaan vain, jos tämä näkymäohjain palaa
YES
siitäshouldAutorotate
menetelmä. Järjestelmä leikkaa näkymäohjaimen tuetut suunnat sovelluksen tukemien suuntausten kanssa (määritettynäInfo.plist
tiedosto tai edustajan sovellusapplication:supportedInterfaceOrientationsForWindow:
menetelmä) määrittääksesi, kierretäänkö. - Järjestelmä määrittää, tuetaanko suuntaa, leikkaamalla sovelluksen palauttaman arvon
supportedInterfaceOrientationsForWindow:
menetelmän palauttamalla arvollasupportedInterfaceOrientations
ylimmän koko näytön ohjaimen menetelmä. - -
setStatusBarOrientation:animated:
menetelmää ei ole kokonaan poistettu. Se toimii nyt kuitenkin vain, jossupportedInterfaceOrientations
ylimmän koko näytön ohjaimen menetelmä palauttaa0
. Tämä asettaa vastuun varmistaa, että tilapalkin suunta on johdonmukainen, soittajan käsissä. - Yhteensopivuuden varmistamiseksi tarkastele ohjaimia, jotka edelleen toteuttavat
shouldAutorotateToInterfaceOrientation:
menetelmä ei saa uutta autorotaatiokäyttäytymistä. (Toisin sanoen he eivät palaa käyttämään sovellusta, sovelluksen edustajaa taiInfo.plist
tiedosto tuetun suunnan määrittämiseksi.) Sen sijaanshouldAutorotateToInterfaceOrientation:
menetelmää käytetään syntetisoimaan tiedot, jotka palautettaisiinsupportedInterfaceOrientations
menetelmällä.
- Enemmän vastuuta siirtyy sovellukselle ja sovelluksen edustajalle. Nyt iOS-säiliöt (esim
-
-
willRotateToInterfaceOrientation:duration:
,willAnimateRotationToInterfaceOrientation:duration:
jadidRotateFromInterfaceOrientation:
menetelmiä ei enää kutsuta millään näkymäohjaimella, joka tekee koko näytön esityksen itsestään – esimerkiksi kutsumallapresentViewController:animated:completion:
.iOS 6:ssaviewWillUnload
javiewDidUnload
menetelmätUIViewController
on nyt poistettu käytöstä. Jos käytit näitä menetelmiä tietojen vapauttamiseen, käytä niitädidReceiveMemoryWarning
menetelmän sijaan. Voit myös käyttää tätä menetelmää viittausten vapauttamiseen näkymäohjaimen näkymään, jos sitä ei käytetä. Sinun on testattava, että näkymä ei ole ikkunassa ennen kuin teet tämän.- Varmista, että sovelluksesi eivät käytä näitä menetelmiä alinäkymien asettelun hallintaan. Sen sijaan heidän tulisi käyttää näkymäohjainta
viewWillLayoutSubviews
menetelmää ja säädä asettelua näkymän rajojen suorakulmion avulla.
- Varmista, että sovelluksesi eivät käytä näitä menetelmiä alinäkymien asettelun hallintaan. Sen sijaan heidän tulisi käyttää näkymäohjainta
-
Ei tueta arvojen asettamista kohteelle
shadowOffset
orshadowColor
ominaisuudet aUILabel
vastustaa, jos se onattributedText
ominaisuus sisältää kelvollisen määritemerkkijonon. Käytä sen sijaanNSShadowAttributeName
määritetyn merkkijonon attribuutti asettaaksesi varjon. -
Yhteensopivuussyistä johtuen
NSBaselineOffsetAttributeName
attribuuttia ei enää tueta iOS 6:ssa. -
-
NSTextAlignmentNatural
arvoa ei tueta, ja se aiheuttaa poikkeuksen, kun sitä käytetääntextAlignment
OmaisuuttaUILabel
tai toimitetaan kohdistusparametrinadrawInRect:withFont:lineBreakMode:alignment:
menetelmäNSString
. -
-
setContentStretch:
menetelmäUIView
on vanhentunut tässä beta-versiossa. Saman vaikutuksen saavuttamiseksi käytäresizableImageWithCapInsets:
menetelmäUIImage
ja näytä kuva aUIImageView
. -
-
resizableImageWithCapInsets:
menetelmäUIImage
muuttaa kuvien kokoa tehokkaasti laatoituksella. Suorituskyvyn optimoinnissa se käyttää venytystä laatoituksen sijaan silloin, kun käyttäjä ei pysty erottamaan eroa, esimerkiksi kun yhtä saraketta tai riviä venytetään. Tietyissä olosuhteissa käyttäjä saattaa kuitenkin haluta venyttää kuvan osaa. iOS 6:ssaresizableImageWithCapInsets:resizingMode:
-menetelmän avulla soittaja voi määrittää laatoitus- tai venytyskoonmuutostilan. -
-
UICollectionViewLayout
luokka on muuttunut: A:n alareunaUILabel
näkymä on nyt erilainen kuin sen perusviiva.Aikaisemmin automaattinen asettelu tulkitsi a:n alaosanUILabel
olla sama kuin sen perusviiva. Vaikka se oli kätevä monissa tapauksissa, se aiheutti ongelmia, jos halusit asettaa yhden tarran yläreunan toisen alareunaa vasten. Tällaisessa tilanteessa alempi tarra olisi päällekkäin ylemmän etiketin kanssa, ja ylemmästä tarrasta laskeutuvat voivat törmätä alemmasta tarrasta nouseviin. Nyt automaattinen asettelu tulkitseeUILayoutAttributeBottom
tekstiruudun alaosassa (olettaen, että tarra ei ole suurempi kuin sen sisäinen sisältökoko) jaUILayoutAttributeBaseline
tekstin perustana. Jos olet jo luonut koodin tarrojen asettelua varten ala- tai keskipisteen mukaan, tekstisi liikkuu hieman ja sinun on säädettävä rajoituksiasi.- Luokka tukee nyt pyörityksen aikana luotujen animaatioiden mukauttamista. Myös lisäys- ja poistoanimaatioiden mukauttamismenetelmien nimet ovat muuttuneet, joten samoja koukkuja voidaan käyttää sekä kiertoon että lisäyksiin ja poistoihin.
- Luokka on muuttanut joidenkin metodien nimiä. Erityisesti koristenäkymiä ei enää viitata "uudelleenkäyttötunnisteella" vaan pikemminkin "elementtilajilla". Koristeellisia näkymiä käyttävien sovellusten on muokattava koodiaan ja rakennettava uudelleen tämän mukaiseksi.
-
Sovellukset, joiden nib- tai kuvakäsikirjoitustiedostoissa on taulukkonäkymät ja jotka on luotu iOS 6:n aiemmilla betaversioilla, vaativat puhtaan koontiversion beta 3:lla ja uudemmilla.
-
Tässä on joitain huomautuksia automaattisen asettelun tuesta
UIScrollView
:- Yleensä automaattinen asettelu pitää näkymän ylä-, vasen-, ala- ja oikeaa reunaa näkyvä reunat. Eli jos kiinnität näkymän sen supernäkymän vasempaan reunaan, kiinnität sen todella supernäkymän rajojen minimiin x-arvoon. Valvonnan rajojen alkuperän muuttaminen tekee emme muuttaa näkymän sijaintia.
- -
UIScrollView
luokka vierittää sisältöä muuttamalla rajojen alkuperää. Jotta tämä toimisi automaattisen asettelun kanssa, ylä-, vasen-, ala- ja oikean reunan merkityssisällä vieritysnäkymä tarkoittaa nyt sen sisältönäkymän reunoja. - Vieritysnäkymän alinäkymien rajoitusten on johdettava täytettävään kokoon, joka tulkitaan sitten vieritysnäkymän sisältökooksi. (Tätä ei pidä sekoittaa
intrinsicContentSize
automaattiseen asetteluun käytetty menetelmä.) Vieritysnäkymän koon määrittäminenframe
automaattisessa asettelussa rajoitusten on oltava joko selkeitä vieritysnäkymän leveyden ja korkeuden suhteen, tai vieritysnäkymän reunojen on oltava sidottu näkymiin ulkopuolella sen alipuusta. - Huomaa, että voit saada vieritysnäkymän alinäkymän näyttämään kelluvan (ei vierivän) muun vieritettävän sisällön päällä luomalla rajoituksia näkymän ja vieritysnäkymän alipuun ulkopuolisen näkymän, kuten vieritysnäkymän supernäkymän, välille.
- Tässä on esimerkkejä vieritysnäkymän määrittämisestä:
- Sekoitettu lähestymistapa:
- Sijoita ja kokoa vieritysnäkymäsi vieritysnäkymän ulkopuolisilla rajoituksilla, toisin sanoen
translatesAutoresizingMaskIntoConstraints
ominaisuus on asetettuNO
. - Luo tavallinen
UIView
sisältönäkymä vieritysnäkymää varten, jonka koko on haluamasi sisällölläsi. Tee siitä vieritysnäkymän alinäkymä, mutta anna sen jatkaa automaattisen kokoamismaskin muuntamista rajoituksiksi:UIView *contentView = [[UIView alloc]
initWithFrame:CGRectMake(0,0,sisällönleveys,sisällönkorkeus)];
[scrollView addSubview:contentView];
// ÄLÄ muuta sisältöäView's translatesAutoresizingMaskIntoConstraints,
// joka on oletuksena KYLLÄ;
- Aseta vieritysnäkymän sisällön koko vastaamaan sisältönäkymän kokoa:
[scrollView setContentSize:CGMakeSize(contentWidth,contentHeight)];
- Luo näkymät, jotka haluat sijoittaa sisältönäkymään, ja määritä niiden rajoitukset sijoittaaksesi ne sisältönäkymään. Vaihtoehtoisesti voit luoda näkymän alipuun siirtyäksesi vieritysnäkymään, määrittää rajoitukset ja kutsua
systemLayoutSizeFittingSize:
menetelmällä (UILayoutFittingCompressedSize
vaihtoehto) löytääksesi koon, jota haluat käyttää sisältönäkymässäsi jacontentSize
vieritysnäkymän ominaisuus.
- Sijoita ja kokoa vieritysnäkymäsi vieritysnäkymän ulkopuolisilla rajoituksilla, toisin sanoen
- Puhdas automaattinen asettelutapa:
- Tässä tapauksessa,
translatesAutoresizingMaskIntoConstraints
on asetettavaNO
kaikista asiaan liittyvistä näkemyksistä. - Sijoita ja kokoa vieritysnäkymäsi vieritysnäkymän ulkopuolisilla rajoituksilla.
- Käytä rajoitteita sijoittaaksesi alinäkymät vieritysnäkymään ja varmista, että rajoitukset liittyvät vieritysnäkymän kaikkiin neljään reunaan eivätkä luota vieritysnäkymään saadakseen kokonsa. Yksinkertainen esimerkki olisi suuri kuvanäkymä, joka sillä on kuvan koosta johdettu sisäinen sisällön koko. Vuonna
viewDidLoad
näkymäohjaimesi menetelmällä, sisällytät seuraavanlaisen koodin:UIScrollView *scrollView = [[UIScrollView alloc] init];
UIImageView *imageView = [[UIImageView alloc] init];
[imageView setImage:[UIImage imageNamed:"MyReallyBigImage"]];
[self.view addSubview:scrollView];
[scrollView addSubview:imageView];
scrollView.translatesAutoresizingMaskIntoConstraints = EI;
imageView.translatesAutoresizingMaskIntoConstraints = EI;
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(scrollView, imageView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" option:0 metrics: 0 viewsDictionary:viewsDictionary]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" option:0 metrics: 0 viewsDictionary:viewsDictionary]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]|" option:0 metrics: 0 viewsDictionary:viewsDictionary]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]|" option:0 metrics: 0 viewsDictionary:viewsDictionary]];
Tämä antaisi sinulle vieritysnäkymän, jonka kokoa muutetaan samalla, kun näkymäohjaimen näkymän kokoa muutetaan (esimerkiksi laitteen pyörittämisen yhteydessä), ja kuvanäkymä olisi vierivä alinäkymä. Sinun ei tarvitse asettaa vieritysnäkymän sisällön kokoa.
- Tässä tapauksessa,
- Sekoitettu lähestymistapa:
-
Kun otetaan huomioon tämä näkymähierarkia:
ContainerView
| OddHeightView
| | EvenHeightView
| OtherFixedHeightView
ja nämä rajoitukset:
EvenHeightView.centerY == OddHeightView.centerY
EvenHeightView.bottom (tai perusviiva) == OtherFixedHeightView.bottom (tai perusviiva)
OtherFixedHeightView.top == ContainerView.top +
iOS 6 beta 4:ssä muissa kuin Retina-näyttölaitteissa näytön alareunat (tai perusviivat)
EvenHeightView
jaOtherFixedHeightView
olivat pois yhden pikselin verran, eikä kehittäjä voinut tehdä asialle mitään. Tämä ongelma on nyt korjattu.iOS 6:n beta 4:ssä on tunnettu virhe, että kun sinulla on rajoitus yhdessä vieritysnäkymän kohteen kanssa, toinen kohde on kyseisen vieritysnäkymän jälkeläinen, ja lisäät rajoitteen kyseisen vieritysnäkymän esi-isään. silloin rajoitus saattaa lakata toimimasta kunnolla. Kiertotapa on lisätä tällaisia rajoituksia vain itse vieritysnäkymään, ei mihinkään vanhaan esi-isään.
- Ennen muutoksia asettelumoottori ei integroinut näkymien sijaintimuuttujia, ja nämä rajoitukset olivat aina täytettäviä:
ContainerView
| OddWidthView
| EvenWidthView
OddWidthView.centerX == ContainerView.centerX
EvenWidthView.centerX == ContainerView.centerX
EvenWidthView.centerX == OddWidthView.centerX
Nyt asettelumoottori integroi sijaintimuuttujat (x ja y) sekä mittamuuttujat (leveys ja korkeus). Tämä tarkoittaa, että se yrittää täyttää kolme rajoitusta an kokonaisluku ratkaisu, joka ei ehkä ole mahdollista, ja näin ollen kirjaa, että nämä rajoitukset eivät ole täyttyneet. Tässä tapauksessa ja kaikissa vastaavissa tapauksissa kehittäjien on vain poistettava ylimääräinen rajoitus (tai rajoitukset). Yllä olevassa esimerkissä minkä tahansa kolmesta rajoituksesta poistaminen ratkaisee ongelman.
- Ennen muutoksia asettelumoottori ei integroinut näkymien sijaintimuuttujia, ja nämä rajoitukset olivat aina täytettäviä:
Safari ja WebKit
-
WebKit iOS:ssä tukee nyt
requestAnimationFrame
jacancelAnimationFrame
menetelmät JavaScriptissä, kuten tässä on kuvattu: http://www.w3.org/TR/animation-timing/Sovelluksen oletusvälimuistin kiintiö on kasvanut 5 megatavusta 25 megatavuun.- Huomaa, että koska spesifikaatio on edelleen Working Draft -tilassa, näillä menetelmillä on
webkit
etuliite, joten heillä onwindow.webkitRequestAnimationFrame
jawindow.webkitCancelAnimationFrame
.
- Huomaa, että koska spesifikaatio on edelleen Working Draft -tilassa, näillä menetelmillä on
-
JPEG-alinäytteenottokynnys on noussut 2 MP:stä (megapikselistä) 5 MP:iin kaikissa tuetuissa laitteissa paitsi iPhone 3GS:ssä ja iPod touchissa (4. sukupolvi).
-
Tuki on lisätty kohteelle
<input type="file">
tunnisteet verkkolomakkeissa. Käyttäjät voivat ladata olemassa olevia valokuvia ja videoita valokuvakirjastostaan tai ottaa kuvan tai videon kameralla. Aikaisemmin tämä lomakehallinta oli aina poissa käytöstä. -
OS X:n Safari 6.0:n avulla kehittäjät voivat nyt käyttää Web Inspectoria (verkkokehitystyökalua) liitettyjen iOS-laitteiden ja iOS-simulaattorin kanssa. Kehittäjät voivat käyttää Web Inspectoria Safarin ja
UIWebView
luokkaa omissa sovelluksissaan, jotka on rakennettu ja ajettu Xcodesta. Tämä korvaa Debug Console -bannerin Safarissa. -
iOS 6:ssa ja uudemmissa versioissa verkkotiedot (SQL Web Storage ja LocalStorage) alkaen a
UIWebView
objekti voidaan tallentaa hakemistoon, josta tehdään varmuuskopio. Ota näiden tietojen varmuuskopiointi käyttöön määrittämälläWebKitStoreWebDataForBackup
avainYES
sovelluksesi käyttäjän oletusasetuksissa. Tämä tulee tehdä vain, jos sovelluksesi perustuu verkkosisältötietoihin, joita ei voi ladata uudelleen. Jos sinunUIWebView
objekti avaa linkkejä mielivaltaiseen verkkosisältöön, tämän avaimen pitäisi ollaNO
. Tämän avaimen arvon vaihtaminen ei säilytä olemassa olevia verkkonäkymätietoja. -
iOS 6:ssa ja uudemmissa versioissa Safari ei enää rekisteröidy yleiseen käyttöön
feed:
RSS/ATOM-järjestelmät. Sovelluksia, jotka voivat tarkastella tämäntyyppisiä syötteitä, kehotetaan rekisteröitymään kyseiseen URL-järjestelmään. -
WebKit ei enää aina luo laitteistokiihdytettyjä tasoja elementeille, joissa on
-webkit-transform: preserve-3d
valinnainen. Kirjoittajien tulisi lopettaa tämän vaihtoehdon käyttö laitteistokiihdytyksen saamiseksi. -
Kokeellinen CSS3 Flexbox -tuki poistetaan käytöstä. Vaihda käytöstä
-webkit-flexbox
ja-webkit-inline-flexbox
että-webkit-box
ja-webkit-inline-box
. -
iOS 6:sta lähtien upotetut YouTube-URL-osoitteet muodossa
http://www.youtube.com/watch?v=oHg5SJYRHA0
ei toimi enää. Nämä URL-osoitteet ovat videon katselua varten YouTube-sivustolla, eivät verkkosivuille upottamista varten. Sen sijaan käytettävä muoto on kuvattu tässä: https://developers.google.com/youtube/player_parameters. -
iOS 6:ssa
keyboardDisplayRequiresUserAction
omaisuus lisättiinUIWebView
luokkaa. Omaisuuden oletusarvo onYES
, mikä tarkoittaa soittamistafocus()
lomakeelementissä ei tuo näppäimistöä esiin. Vaihtamalla omaisuutta muotoonNO
, JavaScript-kutsu osoitteeseenfocus()
lomakeelementissä tarkentaa elementin ja tuo näppäimistön automaattisesti esiin. -
IOS 6:sta lähtien soittaminen
focus()
lomakeelementissä verkkosovelluksessa tarkentaa elementin.