NSInvalidUnarchiveOperationException: NSLayoutConstraint adlı sınıf somutlaştırılamadı


165

Ben bu konuda çok yeniyim. Apple'ın iPhone projesi "HelloWorld" için adım adım öğreticiyi takip ettim. İPhone 5.0 simülatöründe çalıştırdım ve çöktü:

2012-11-02 14: 46: 06.782 HelloWorld [9880: c07] * Yakalanmayan 'NSInvalidUnarchiveOperationException' istisnası nedeniyle uygulama sona erdirilemedi * * İlk fırlatma çağrısı yığını: (0x14a2052 0xea2d0a 0x144aa78 0x44aa78 0x44aa14 0x44aa14 0x44aa14 0x44aa78 0x44aa78 0x44aa14 0x32f6b7 0x23036d 0xd7e2c 0xd83a9 0xd85cb 0x38a73 0x38ce2 0x38ea8 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x13d990a 0x13d990a 0x13d990a 0x13d990a 0x13d990a 0x13d990a 0x13d990a 0x13d990a 0x13d990a 0x13d990a

Birisi bana neyin yanlış gittiğini söyleyebilir mi? Xcode 4.5 kullanıyorum.


Sen xib / film şeridi içinde autoLayout özelliğini kapatmak zorunda
berilyum

Yanıtlar:


575

Varsayılan olarak, Xcode 4.5'te yeni bir iOS projesi oluşturduğunuzda, film şeridiniz veya XIB'niz iOS 6.0'daki yeni bir özellik olan Otomatik Yerleşimi kullanacak şekilde ayarlanmıştır. NSLayoutConstraintSınıf autoLayout sisteminin bir parçasıdır ve bu eski iOS sürümlerinde mevcut değil.

İOS'un daha eski bir sürümüne uygulamanızı dağıtmak istiyorsanız, sizin film şeridi veya XIB'ye değiştirmenize gerek yok autoLayout kullanın. Dosya Denetçisindeki bir onay kutusudur:

otomatik yerleşimi kapatma


29
Yakalama ve kırpma için ScreenFlow kullandım. Photoshop'u .mov dosyasını bir .gif biçimine dönüştürmek için kullandım.
rob mayoff

Bu xib'ler için de geçerlidir!
virata

Bunu yapmak, yöntemler uygulansa bile dikeyden yataya görünüm döndürmeyi devre dışı bırakır. Rotasyonun hala yapılmasını istiyorsanız sorunu nasıl çözdünüz? Şimdiden teşekkürler ve ... güzel gif ^^
aGit

@robmayoff gif ve mükemmel cevap için teşekkürler. sorunum bir saniyede çözüldü. :)
ishhhh

Bunu beğendim, bu yüzden istisna sınır değerleri için kendim oluşturdum. rsaunders.co.uk/2013/06/add-exception-breakpoint.html
Robert

21

Kişisel XIb'nin dosyası (Arayüz oluşturucu dosyası) iOS 5 yapar AutoLayout unsurunu içermesidir değil desteklemektedir.

Xcode'da, .xib dosyalarınıza gidin ve her biri için Otomatik Düzen'i kapatın. Sol tarafta "Otomatik Yerleşimi Kullan" yazan bir onay kutusu olmalı, işaretini kaldırın ve tekrar deneyin. (Bu, Dosya sahibini seçtiğinizde sol taraftaki denetçideki ilk sekmenin altındadır).


8

Güncellemek istediğim eski bir proje üzerinde çalışırken bu hatayla karşılaştım. Kısıtlamalarla çalışmaya başlamak için "Otomatik Yerleşimi Kullan" onay kutusunu seçtim, ancak Dağıtım Hedefi ayarımı iOS 6'ya güncellemeyi unuttum.


7

İPhone 6.0 simülatöründe çalıştırmanız gerekiyor. Sizin hatanız:

* Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' *

Yalnızca iOS 6'da çalışan otomatik yerleşimi kullanmanızı önerir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.