iOS 6 beta 3 – tässä kaikki uutta + muutosloki (jatkuvasti päivitettävä artikkeli) x14

  Nyt yli tunti Apple julkaisi iOS beta 6 3 App Storen sovellusten kehittäjille, ja se sisälsi joukon muutoksia, joista useimmat ovat valitettavasti hienovaraisia. Tässä artikkelissa olemme listanneet tärkeimmät uutiset, mutta myös yrityksen julkaiseman virallisen muutoslokin.

1. Uusi valikko Kartat-sovellukselle, jälleen Tässä artikkelissa sinulla on yksityiskohdat.

2. Järjestelmää, joka varoittaa, kun sovellus pyytää pääsyä osoitekirjan tietoihisi, on parannettu.

3. Monet Apple TV:n ongelmista Netflix-sovelluksen, kaukosäätimen, diaesitysten tai YouTube-sovelluksen kanssa ratkesivat.

4. Korjattu ongelma, jossa FaceTime-puheluiden Hyväksy/Hylkää-painikkeet eivät näkyneet.

5. iPad-tabletissa Safarin historia-, Suosikkiluettelo- ja Lukuvalikot ovat nyt saatavilla yhdellä välilehdellä.

6. Yksityisyys-osiossa on nyt kuvakkeet jokaiselle erilliselle luokalle.

7. Siri on vaikeampi vastata kysymyksiin, mutta Apple muokkasi ääntä hieman.

8. Käyttäjillä on mahdollisuus rekisteröidä sähköpostiosoitteita verkkotunnuksella @icloud.com.

9. Jaettu valokuvavirta saavuttaa myös iPhone 3GS:n ja iPod Touchin.

10. VIP-sähköpostitoiminto saavuttaa myös iPod Touchin.

11. Siri voi avata AssistiveTouch-valikon.

12. Mail-sovelluksessa on uusi painike sähköpostien arkistointia varten.

13. Kartat-sovellus tarjoaa tietoja tiettyjen maiden liikenteestä.

14. Kun päivität sovelluksen, App Storen Päivitykset-painike näyttää sinulle ilmaisimen sovelluksen asennuksen edistymisestä.

 

Huomautukset ja tunnetut ongelmat

Seuraavat ongelmat liittyvät iOS SDK 6.0:n käyttöön koodin kehittämiseen.

Address Book

  • Kun sovellus on tuoreessa tietosuojatilassa ja yrittää esittää aABNewPersonViewController, käyttäjä ei voi hylätä näkymäohjainta kunnolla, vaikka ne sallisivat 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. Voit pyytää pääsyä yhteystietoihin soittamalla ABAddressBookRequestAccessWithCompletion-toimintoon soittamisen jälkeen ABAddressBookCreateWithOptions toiminto. ABAddressBookRequestAccessWithCompletion-toiminto ei estä sovellusta, kun käyttäjää pyydetään myöntämään tai estämään pääsy. Kunnes pääsy on myönnetty, ABAddressBookRefobjekti ei sisällä yhteystietoja, ja kaikki yhteystietojen muokkaamisyritykset epäonnistuvat a kABOperationNotPermittedByUserErrorvirhe. Käyttäjä saa kehotteen vain ensimmäisen kerran, kun käyttöoikeutta pyydetään; kaikki myöhemmät ABAddressBookCreateWithOptions-kutsut käyttävät olemassa olevia käyttöoikeuksia. Täydennyskäsittelijä kutsutaan mielivaltaiseen jonoon. Jos ABAddressBookRef-objektia käytetään koko sovelluksessa, kaikki käyttö on lähetettävä samaan jonoon, jotta ABAddressBookRef-objektia voidaan käyttää säikeen turvallisesti.
  • 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, voidaan näyttää käyttöliittymäpainike kontaktin valitsemiseksi.
    • Osoitekirjaa varten kutsu ABAddressBookGetAuthorizationStatus-toiminto. Jos kyseessä on Event Kit, kutsu AuthorizationStatusForEntityType: luokan menetelmäEKEventStore. Kutsu Assets Library:n AuthorizationStatus-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 voimassa olevista lapsilukkoista.
      • Valtuutuksen tila evätty - Käyttäjä esti nimenomaisesti pääsyn tämän sovelluksen tietoluokkaan.
      • Valtuutuksen tila Valtuutettu – Tällä sovelluksella on oikeus käyttää tietoluokkaa.

Apple TV

  • Joissakin tapauksissa näytössä voi näkyä väärä resoluutio. Käynnistä Apple TV uudelleen, jotta se palaa oikeaan resoluutioon.
  • KORJAATTU: Netflix-videot eivät välttämättä jatku siitä mihin jäit.
  • KORJATTU: YouTube-sovelluksen historialuettelo tyhjennetään, kun suljet sovelluksen ja palaat sen sisään.
  • Apple TV saattaa vastata hitaasti, kun lataus on käynnissä taustalla.
  • Apple TV saattaa käynnistyä uudelleen Remote-sovelluksen käytön aikana.
  • Apple TV saattaa käynnistyä uudelleen, kun järjestelmän kieltä vaihdetaan.
  • Photo Stream ei lataudu, kun kirjaudut sisään toisen kerran. Ratkaise ongelma käynnistämällä Apple TV uudelleen.
  • Musiikki ei toistu valokuvadiaesitysten aikana.
  • Uudet käytökset:
    • Valitse kaukosäätimen kaiuttimet kohdasta Asetukset > AirPlay.
    • Aseta AirPlayn näyttökoodi kohdassa Asetukset > AirPlay.
    • Tallenna useita iTunes Store -tilejä kohdassa Asetukset > iTunes Store.
    • Pidä valintapainiketta painettuna järjestääksesi kuvakkeet uudelleen päävalikossa.
    • Piilota päävalikon kuvakkeet kohdasta Asetukset > Yleiset > Lapsilukko.

Bonjour

  • NSNetService luokan ja CFNetService API:t eivät sisällä oletusarvoisesti P2P-liittymiä. Sovelluksen on käytettävä alla mainittuja Bonjour DNSService*() -sovellusliittymiä, jotta se voi selata, rekisteröidä tai ratkaista palveluita P2P-rajapintojen kautta.
  • InterfaceIndex-parametrin asettaminen kDNSServiceInterfaceIndexAny:ksi seuraavissa API:issa ei sisällä oletusarvoisesti P2P-liitäntöjä. Jos haluat sisällyttää P2P-liitännät, sinun on nyt asetettava kDNSServiceFlagsIncludeP2P-lippu kDNSServiceInterfaceIndexAny-käytössä tai asetettava interfaceIndex-arvoksi kDNSServiceInterfaceIndexP2P. Sovellusliittymillä, joita asia koskee, on:
    • DNSServiceBrowse
    • DNSServiceRegister
    • DNSServiceResolve
    • DNSServiceRegisterRecord
    • DNSServiceQueryRecord

Sanakirja

  • 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 tarjotaan mahdollisuus ladata sanakirja - lataus ei välttämättä ala. Käyttäjä voi napauttaa ponnahdusikkunan ulkopuolella iPadissa tai napauttaa "Valmis"-painiketta iPhonessa tai iPod touchissa hylätäkseen latauspyynnön.

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ä tapahtuma- ja/tai muistutustietoihin soittamalla requestAccessToEntityType:completion: -menetelmään 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, tapahtumavarasto ei sisällä kalentereita kyseiselle entiteettityypille ja kaikki tietojen tallennusyritykset epäonnistuvat.
    • Käyttäjää pyydetään vain, kun käyttöoikeutta pyydetään ensimmäisen kerran. kaikki myöhemmät EKEventStoren ilmentymät käyttävät olemassa olevia käyttöoikeuksia. Täydennyskäsittelijä kutsutaan mielivaltaiseen jonoon.

Game Center

  • Kun luot uuden Game Center -tilin sovelluksen sisällä iPadissa, ponnahdusikkuna syntymäaikasi kuukauden valitsemiseksi tulee näkyviin ilman valittavaa sisältöä.
  • Todennusmenetelmä GKLocalPlayer on poistettu. Todennus alkaa automaattisesti, kun viimeistelyn käsittelijä on asetettu.

iCloud

  • Kun luot iCloud-tiliä, voit käyttää mitä tahansa sähköpostipohjaista Apple ID:tä tai olemassa olevaa iCloud-tiliäsi. Jos sinulla oli MobileMe-tili, jota et ole vielä siirtänyt iCloudiin, sinun on siirrettävä se ensin osoitteessahttp://me.com. iCloudiin siirtyminen on mahdollista vain rajoitetun ajan. MobileMe-tilille kirjautumista ei tueta iOS 6:ssa. Provisioning-profiilien on oltava käytössä iCloudissa iOS-hallintaportaalissa. 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 hankkivat uusia Apple ID -tunnuksia tai ottavat Mailin käyttöön iCloud-tilillään ensimmäistä kertaa, saavat automaattisesti @icloud.com-sähköpostiosoitteen me.com-sähköpostiosoitteen sijaan. iCloud-käyttäjät, joilla on @me.com-osoite ja joita on käytetty iOS 6 beta 3:n kanssa, saavat @icloud.com-sähköpostiosoitteen, joka vastaa heidän @me.com-osoitettaan.
    • 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öpostia icloud.com-osoitteestaan ​​verkkoselaimen avulla.
  • setSortDescriptors: NSMetadataQuery-menetelmää ei tueta.
  • 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, kun tiedostoja jaetaan kahden alustan välillä iCloudin avulla. Sinun tulee ryhtyä toimiin iOS:ssä välttääksesi sellaisten tiedostojen luomisen, joiden nimet eroavat vain tapauskohtaisesti.
  • Koordinoitujen lukutoimintojen käyttäytyminen iCloud-dokumenteissa on muuttunut. Aiemmissa iOS-julkaisuissa sovelluksesi suoritti koordinoidun lukutoiminnon tiedostolle tai paketille ja iCloud-daemon huomasi, 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 UID-dokumenttitakaisinsoittoja, joista ilmoitetaan, kun konfliktin häviäjät on ladattu ja saatavilla.

iMessage ja FaceTime

  • KORJAATTU: Vastaa- ja Hylkää-painikkeet puuttuvat, kun puhelut vastaanotetaan vaakasuunnassa.

iTunes

  • iTunes 10.6.3 vaaditaan iOS SDK 6.0:lle.
  • KORJATTU: Kun palautetaan iTunes-varmuuskopiosta, laite näkyy ajoittain uutena laitteena uudelleenkäynnistyksen jälkeen. Jos näin tapahtuu, määritä laite "uudeksi laitteeksi", kun sitä kehotetaan palauttamaan toisen kerran. Kaikki tiedot olisi pitänyt palauttaa oikein, mutta synkronointiasetukset, mukaan lukien sovellusten järjestely iTunesissa, menetetään.

Kartat

  • iOS 6:ssa ja sitä uudemmissa versioissa Map Kit on rakennettu Applen isännöimälle uudelle infrastruktuurille. Aiemmat iOS-julkaisut käyttävät edelleen Googlen palvelua. KORJATTU: Jos Maps ei ole käynnissä taustalla, "Maps ei voi muodostaa yhteyttä Internetiin" -virhe näytetään, kun se käynnistetään kolmannen osapuolen sovelluksesta.
    • 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.
  • KORJATTU: Jos Mapsia ei ole vielä käynnistetty, nykyinen sijainti ei näy, kun se käynnistetään kolmannen osapuolen sovelluksesta.
  • Reitityssovellukset, jotka eivät määritä kattavuustiedostoa kehityksen aikana, näkyvät aina Mapsin reitityshakutuloksissa.
  • 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. .
  • Maps ei lähennä nykyiseen sijaintiin, kun se käynnistetään kolmannen osapuolen sovelluksesta.

lehtikioski

  • Vain yksinkertaiset http-lataukset toimivat Lehtikioskissa.

vastakirja

  • KORJATTU: Lentokonekuvake ilmestyy lähtöpaikan ja määränpään väliin kaikille kulkuvälinetyypeille.
  • "Kuvaus"-kenttä on nyt pakollinen kenttä passille. Kaikkia ilman sitä luotuja kortteja ei voida vahvistaa, eikä niitä voida käyttää.
  • KORJAATTU: Passbook-tietokanta on nollattu. Sinun on lisättävä korttisi uudelleen.
  • Simulaattorin Passbook ei enää vaadi https/ssl:ää käytettäessä webServiceURL-osoitetta passin vastaanottamisessa.
  • Tarkastuskortteja ei voi näyttää lukitusnäytöllä.

Muistutukset

  • KORJATTU: Muistutusten lisäämisessä ja muokkaamisessa iPhone-laitteiden Muistutukset-sovelluksessa esiintyy ongelmia:
    • Valmis-painike puuttuu uutta muistutusta lisättäessä.
    • Sovellus kaatuu, kun napautat Muokkaa-painiketta muokataksesi muistutusta.

Turvallisuus

  • IOS 5 ei tue varmenteen allekirjoittamista MD5-allekirjoituksella. Varmista, että varmenteissa käytetään SHA1- tai SHA2-pohjaisia ​​allekirjoitusalgoritmeja.
  • IOS 6:ssa on parannetut tietosuojasäädöt kalentereille, muistutuksille, yhteystiedoille ja valokuville.
    • 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 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

  • Sovelluksen poiston vahvistuspaneelin näkyminen iOS-simulaattorissa kestää hetken.
  • KORJATTU: Napauttamalla ostopainiketta näkymässäSKStoreProductViewController -objekti iOS Simulatorissa aiheuttaa sovelluksen kaatumisen.
  • iOS Simulatorissa ei näytetä tietosuojavaroituksia sovelluksille, jotka käyttävät kuvia, yhteystietoja, kalenteria ja muistutuksia.
  • Sovelluksen sisäisten ostojen isännöimän sisällön lataamista iOS Simulatorissa ei tueta.
  • Kun yrität toistaa MP3-ääntä simulaattorissa, kuulet sen sijaan poksahtavan äänen.
  • KORJAATTU: iOS 5.1 SDK:n käyttö iPad (Retina) -profiilin kanssa johtaa SpringBoardin kaatumiseen. iOS 5.1 SDK toimii kaikkien muiden profiilien kanssa ja iPad (Retina) SDK toimii iOS 6.0 SDK:n kanssa.
  • KORJATTU: ADAdTypeMediumRectangle-tyyppisiä mainoksia ei näy iPad Simulatorissa.

Jaettu valokuvavirta

  • Käyttäjän on siirryttävä kohtaan Asetukset > iCloud varmistaakseen, että hän vastaanottaa jaetun valokuvavirran ilmoitukset.
  • Jotta voit jakaa valokuvavirran iOS 6 -betaversion kanssa, sinun on kutsuttava joku hänen iCloud-sähköpostiosoitteellaan tai hän ei saa kutsua.
  • Päivittäminen iOS 6 beta 1:stä beta 2:een saa laitteesi lataamaan uudelleen kaikki jaetut valokuvavirrat.
  • 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Ä.
  • Jaettujen valokuvavirtojen poistaminen käytöstä saattaa jättää kameran reagoimatta. Kameran pakottaminen sulkee tämän ongelman.

sosiaalinen

  • Weibo näkyy Asetukset-sovelluksessa vain, jos kiinalainen näppäimistö on käytössä.
  • requestAccessToAccountsWithType:withCompletionHandler: ACAccountStore-menetelmä on nyt vanhentunut. Päästäksesi käyttäjätileihin, käytärequestAccessToAccountsWithType:options:completion: menetelmä. Anna tämän uuden menetelmän asetusparametrissa nolla päästäksesi Twitter- ja Weibo-tileihin. Päästäksesi Facebook-tileihin, välitä sanakirja seuraavilla avaimilla (jotka on dokumentoitu ACAccountStore.h:ssa): Sinun ei pitäisi enää lisätä tätä sanakirjaa sovelluksesi Info.plist-tiedostoon, kuten beta 1:ssä vaadittiin.
    • ACFacebookAppIdKey
    • ACFacebookPermissionsKey
    • ACFacebookPermissionGroupKey

Ponnahduslauta

  • KORJATTU: Kun olet palauttanut laitteen iTunesissa tai suorittanut "Poista kaikki sisältö ja asetukset", nykyinen taustakuva ei ehkä näy ennen kuin laite käynnistetään uudelleen kerran.

Status Bar

  • Nyt on mahdollista asettaa tilapalkin sävyparametreja sovelluksesi Info.plist-tiedostossa. 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 Info.plist-tiedostoon. Tämän avaimen arvo on sanakirja, jossa on asianmukaiset arvot, jotka kuvaavat sovelluksesi käynnistyshetkellä olevaa navigointipalkkia. Sanakirjan sisällä tulisi olla UINavigationBar-avain, jonka arvo on myös sanakirja. Sanakirja sisältää alkuperäisen navigointipalkin tyylin (Tyyli-näppäimellä) ja sen läpikuultavan (läpikuultavalla näppäimellä). Jos navigointipalkki käyttää niitä, voit myös määrittää sen sävyn värin (TintColor-näppäimellä) tai mukautetun taustakuvan nimen (BackgroundImage-näppäimellä).

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 saavuttaminen ei vaadi ylimääräistä API-käyttöliittymää, ja kaikki olemassa olevat API, mukaan lukien edustajan toimittama UIPopoverController-esiintymä, toimivat edelleen kuten ennen. Jos ele ei tue sovelluksessasi, aseta esitteleeEleellä jaetun näkymän ohjaimen ominaisuus NO 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.
    • KORJATTU: iOS 6:ssa on tehty muutoksia, jotta sinun ei enää tarvitse määrittää yhden sormen ja yhden kosketuksen eletunnistimien edustajaa ja ottaa käyttöön menetelmää, jotta ne toimisivat hyvin UIControl esineitä.
    • iOS 6:ssa ja uudemmissa UIWebView luokka maalaa sisällön asynkronisesti.
    • KORJAATTU: Kehittäjät kokeilevat automaattista asettelua UIScrollViewobjektit saattavat huomata värinää Retina-näytöllä varustetuissa laitteissa vieritysilmaisimissa.
    • Autorotaatio muuttuu iOS 6:ssa. iOS 6:ssashouldAutorotateToInterfaceOrientation: UIViewController-menetelmä on vanhentunut. Sen sijaan kannattaa käyttäätuetut InterfaceOrientations KORJATTU: Tietyissä tilanteissa automaattinen asettelujärjestelmä ei välttämättä kytkeydy automaattisesti näkymään. Voit kiertää tämän ongelman ohittamalla vaatii ConstraintBasedLayout luokan menetelmä mielestäsi ja palauta toteutuksestasi KYLLÄ.
      • Enemmän vastuuta siirtyy sovellukselle ja sovelluksen edustajalle. Nyt iOS-säiliöt (esimUINavigationController) ä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 asetettu UIInterfaceOrientationMaskAll iPad idiomille jaUIInterfaceOrientationMaskAllButUpsideDowniPhone 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 sekä ylimmältä koko näytön ohjaimelta (yleensä juurinäkymän ohjaimelta) tuetut käyttöliittymäsuunnat aina, kun laite pyörii tai kun näkymäohjain esitetään koko näytön modaalisella esitystyylillä. Lisäksi tuetut suunnat haetaan vain, jos tämä näkymäohjain palauttaa KYLLÄ sen shouldAutorotate -metodista. Järjestelmä leikkaa näkymäohjaimen tuetut suunnat sovelluksen tukemien suuntausten kanssa (Info.plist-tiedoston tai sovelluksen edustajan määrittämänäApplication:supportedInterfaceOrientationsForWindow:menetelmä) määrittääksesi, kierretäänkö.
      • Järjestelmä määrittää, onko suuntaa tuettu, leikkaamalla sovelluksen palauttaman arvonSupportedInterfaceOrientationsForWindow:menetelmän palauttamalla arvollatuetut InterfaceOrientations ylimmän koko näytön ohjaimen menetelmä.
      • setStatusBarOrientation:animated:menetelmää ei ole kokonaan poistettu. Se toimii nyt kuitenkin vain, jostuetut InterfaceOrientations ylimmän koko näytön ohjaimen menetelmä palauttaa 0. Tämä asettaa vastuun tilapalkin johdonmukaisuudesta soittajan käsiin.
      • Yhteensopivuuden varmistamiseksi tarkastele ohjaimia, jotka edelleen toteuttavatshouldAutorotateToInterfaceOrientation: menetelmä ei saa uutta autorotaatiokäyttäytymistä. (Toisin sanoen he eivät enää käytä sovellusta, sovelluksen edustajaa tai Info.plist-tiedostoa tuettujen suuntausten määrittämiseen.) Sen sijaan shouldAutorotateToInterfaceOrientation: menetelmä, jota käytetään syntetisoimaan tiedot, jotka palautettaisiintuetut InterfaceOrientations menetelmällä.
    • 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:ssa viewWillUnload ja viewDidUnload UIViewControllerin menetelmät ovat nyt vanhentuneet. Jos käytit näitä menetelmiä tietojen vapauttamiseen, käytä didReceiveMemory Warningmenetelmä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 viewWillLayoutSubviewsmenetelmää ja säädä asettelua näkymän rajojen suorakulmion avulla.
    • KORJATTU: Minkä tahansa määritetyn merkkijonopiirtotavan kutsuminen määrittämättä arvoa NSFontAttributeName attribuutti tekee todennäköisesti poikkeuksen. Kiertotapa on asettaa arvo NSFontAttributeName-avaimelle ennen kuin piirrät tai määrität koon.NSAttributedString esine.
    • Arvojen asettaminen kohteelle shadowOffset or shadowColor UILabel-objektin ominaisuudet, jonka AttributedText ominaisuus sisältää kelvollisen määritetyn merkkijonon, sitä ei tueta. KäytäNSShadowAttributeName määritetyn merkkijonon attribuutti asettaaksesi varjon sen sijaan.
    • Yhteensopivuussyistä johtuenNSBaselineOffsetAttributeName attribuuttia ei enää tueta iOS 6:ssa.
    • NSTextAlignmentNatural arvoa ei tueta, ja se aiheuttaa poikkeuksen, kun sitä käytetään tekstiAlignment UILabelin ominaisuus tai toimitetaan kohdistusparametrinadrawInRect:withFont:lineBreakMode:alignment: NSStringin menetelmä.
    • SetContentStretch: menetelmä UIV -näkymä on vanhentunut tässä beta-versiossa. Saman vaikutuksen saavuttamiseksi käytä resizableImageWithCapInsets: UIImage-menetelmä ja näytä kuva a UIImageView.
    • resizableImageWithCapInsets: UIImage-menetelmä muuttaa kuvien kokoa tehokkaasti laatoituksella. Suorituskyvyn optimoinnissa se käyttää venytystä laatoituksen sijaan silloin, kun käyttäjä ei pysty erottamaan eroa, kuten kun yksittäistä saraketta tai riviä venytetään. Mutta tietyissä olosuhteissa joku saattaa haluta todella venyttää kuvan osaa. iOS 6:ssa resizableImageWithCapInsets:resizingMode: -menetelmä sallii soittajan määrittää laatoitus- tai venytyskoonmuutostilan.
    • UICollectionViewLayout luokka on muuttunut: KORJATTU: iOS 6:ssa korjattiin virhe, jossa UIWebView.isLoading asetettiin arvoon NO ennen kuin pääkehys oli latautunut. Nyt UIWebView.isLoading-asetuksena on NO, kun pääkehys on latautunut.
      • Luokka tukee nyt pyörityksen aikana luotujen animaatioiden mukauttamista. Myös lisäys- ja poistoanimaatioiden mukauttamismenetelmien nimet ovat muuttuneet siten, että 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.
    • A:n alareuna UILabel näkymä on nyt erilainen kuin sen perusviiva. Aikaisemmin automaattinen asettelu tulkitsi UILabelin alaosan olevan 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 ylimmän etiketin kanssa, ja ylemmästä tarrasta laskeutuvat voivat törmätä alimman tarran nouseviin kohtiin. Nyt automaattinen asettelu tulkitsee UILayoutAttributeBottomin tekstiruudun alareunaksi (olettaen, että otsikko ei ole suurempi kuin sen sisäinen sisältökoko) ja UILayoutAttributeBaseline tekstin perusviivaksi. Jos olet jo luonut koodin tarrojen asettelua varten ala- tai keskipisteen mukaan, tekstisi liikkuu hieman ja sinun on säädettävä rajoituksiasi.
    • 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 tuestaUIScrollView:
      • Yleensä automaattinen asettelu pitää näkymän ylä-, vasen-, ala- ja oikeaa reunaa näkyvinä reunoina. Eli jos kiinnität näkymän sen supernäkymän vasempaan reunaan, kiinnität sen todella supernäkymän rajojen minimiin x-arvoon. Supernäkymän rajojen alkuperän muuttaminen ei muuta näkymän sijaintia.
      • UIScrollView-luokka vierittää sisältöä muuttamalla rajojen alkuperää. Jotta tämä toimisi automaattisen asettelun kanssa, vieritysnäkymän ylä-, vasen-, ala- ja oikea reuna 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ä sekoittaaintrinsicContentSize automaattiseen asetteluun käytetty menetelmä.) Jotta vieritysnäkymän kehyksen kokoa voidaan käyttää automaattisella asettelulla, rajoitusten on oltava joko selvät vieritysnäkymän leveydestä ja korkeudesta tai vieritysnäkymän reunat on sidottava näkymiin sen alipuun ulkopuolella.
      • 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:
          1. Sijoita ja kokoa vieritysnäkymäsi vieritysnäkymän ulkopuolisilla rajoituksilla, toisin sanoenkääntääAutoresizingMaskIntoConstraintsominaisuus on asetettu NO.
          2. Luo tavallinen UIV -näkymä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Ä;
      1. Aseta vieritysnäkymän sisällön koko vastaamaan sisältönäkymän kokoa:
  • [scrollView setContentSize:CGMakeSize(contentWidth,contentHeight)];
      1. 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 kutsuasystemLayoutSizeFittingSize:menetelmällä (UILayoutFittingCompressedSizevaihtoehto) löytääksesi koon, jota haluat käyttää sisältönäkymäsi koolle jacontentSizevieritysnäkymän ominaisuus.
    • Puhdas automaattinen asettelutapa:
      1. Tässä tapauksessakääntääAutoresizingMaskIntoConstraintstulee asettaa arvoon EI kaikissa asiaan liittyvissä näkymissä.
      2. Sijoita ja kokoa vieritysnäkymäsi vieritysnäkymän ulkopuolisilla rajoituksilla.
      3. 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. VuonnaviewDidLoadnäkymäohjaimesi menetelmällä, sisällytät seuraavanlaisen koodin:
      1. 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.

Safari ja WebKit

  • WebKit iOS:ssä tukee nyt JavaScript-menetelmiä requestAnimationFrame ja cancelAnimationFrame, kuten tässä on kuvattuhttp://www.w3.org/TR/animation-timing/Sovellusten oletusvälimuistin kiintiö on nostettu 5 megatavusta 25 megatavuun.
    • Huomaa, että koska määritys on edelleen Working Draft -tilassa, näillä menetelmillä on webkit-etuliite, joten ne ovat window.webkitRequestAnimationFrame, window.webkitCancelAnimationFrame.
  • JPEG-alinäytteenottokynnys nostettiin 2 MP:stä (megapikselistä) 5 MP:iin kaikissa tuetuissa laitteissa paitsi iPhone 3GS:ssä ja iPod touchissa (4. sukupolvi).
  • Tuki on lisätty kohteelle 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 aUIWebView objekti voidaan tallentaa hakemistoon, josta tehdään varmuuskopio. Ota näiden tietojen varmuuskopiointi käyttöön asettamalla WebKitStoreWebDataForBackup-avaimeksi KYLLÄ sovelluksesi käyttäjän oletusasetuksissa. Tämä tulee tehdä vain, jos sovelluksesi perustuu verkkosisältötietoihin, joita ei voi ladata uudelleen. Jos UIWebView-objektisi avaa linkkejä mielivaltaiseen verkkosisältöön, tämän avaimen arvoksi tulee asettaa NO. 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 syötteeseen: RSS/ATOM-järjestelmään. Sovelluksia, jotka voivat tarkastella tämäntyyppisiä syötteitä, kehotetaan rekisteröitymään kyseiseen URL-järjestelmään.
  • WebKit ei enää aina luo laitteistokiihdytettyjä kerroksia elementeille, joissa on vaihtoehto -webkit-transform: keep-3d. Kirjoittajien tulisi lopettaa tämän vaihtoehdon käyttö laitteistokiihdytyksen saamiseksi.
  • Kokeellinen CSS3 Flexbox -tuki poistetaan käytöstä. Vaihda -webkit-flexboxin ja -webkit-inline-flexboxin käytöstä -webkit-boxiin ja -webkit-inline-boxiin.
  • iOS 6:sta lähtien upotetut YouTube-URL-osoitteet muodossa http://www.youtube.com/watch?v=oHg5SJYRHA0 eivät enää toimi. Nämä URL-osoitteet ovat videon katselua varten YouTube-sivustolla, eivät verkkosivuille upottamista varten. Sen sijaan käytettävä muoto on kuvattu kohdassahttps://developers.google.com/youtube/player_parameters.
  • iOS 6:ssa keyboardDisplayRequiresUserAction-ominaisuus lisättiin UIWebView-luokkaan. Ominaisuuden oletusarvo on YES, mikä tarkoittaa, että focus():n kutsuminen lomakeelementissä ei tuo näppäimistöä esiin. Muuttamalla ominaisuuden arvoksi NO, JavaScript-kutsu focus() lomakeelementtiin tarkentaa elementin ja tuo automaattisesti esiin näppäimistön.
  • iOS 6:sta lähtien, kun focus():n kutsuminen verkkosovelluksen lomakeelementtiin keskittyy elementtiin.