Film şeridi uyarısı: prototip tablo hücrelerinin yeniden kullanım tanımlayıcıları olmalıdır


123

Bu uyarıyı film şeridinden alıyorum - prototip tablo hücrelerinin yeniden kullanım tanımlayıcıları olmalıdır.

Özellik denetçisinde tanımlayıcıyı yeniden adlandırdım, ancak uyarıyı kaldırmış görünmüyor.

Baska öneri?


Ya yanlış alanı doldurdunuz ya da birden fazla tablo görünümünüz var. Nitelik denetçisinin ekran görüntüsünü gönderebilir misiniz?
jrturton

3
Şimdi tamam dostum. Bir çözüm buldum. Tanımlayıcı değeri, yeniden kullanım tanımlayıcısı ile aynı olmalıdır. :)
K.Honda

Her hücre için bir tanımlayıcı ayarladınız mı?
Mick MacCallum

Merhaba Honda! Bana ne yaptığını söyler misin, çünkü ben de aynı hatayı alıyorum.
Varun Mehta

2
Bazen (şu anda en son Xcode 5 Beta 5 (5B103i) kullanılıyor) film şeridindeki hatanın / uyarının yanlış konumlarını vurguladığını fark ettim. Dolayısıyla, uyarıyı tıklarsanız, bazen benzer uyarının zaten düzeltilebileceği yanlış konumu gösterecektir. Film şeridinizdeki tablo görünümlerinden herhangi birini manuel olarak gözden geçirmenizi ve eksik tanımlayıcıya sahip başka hücreler olup olmadığını kontrol etmenizi öneririm. Yukarıdaki sorunum bu uyarı ile çözüldü. Bu konu, sorunu nasıl çözeceğimi anlamama yardımcı olduğu için soruyu sorduğunuz için teşekkürler @ K.Honda.
Justas

Yanıtlar:


159

Uyarıyı kapatmak için hücre tanımlayıcısına bir ad vermeniz gerekir:

görüntü açıklamasını buraya girin


14
bana oldu.
xcode'u

7
Uyarı kaldığında,
StoryBoard'unuzda

1'den fazla prototip hücreniz varsa
hepsine bir tanımlayıcı vermelisiniz

6
Bu sahte uyarıdan kurtulmak için Türetilmiş Veri klasörünü (Windows Yeniden Başlatmanın Xcode eşdeğeri) silmem ve yeniden oluşturmam gerekti.
Michael McGuire

Bu benim için çalıştı: Xcode'u kapatın, Finder'da / Users / username / Library / Developer / Xcode / DerivedData'yı açın ve tüm içeriğini silin (DerivedData klasörünün kendisini değil).
dldnh

18

Diğer bir yol, hücreyi programlı olarak .xib kullanarak tanımlıyorsanız, Tablo Görünümü 'Prototip Hücreleri' özelliğini Öznitelik Denetçisi'nde sıfıra ayarlamaktır.

Attributes Inspector'da prototip hücrelerini 0 olarak ayarlama


9

Film şeridi aslında XML dosyası olduğundan, başka bir numara, film şeridinizi herhangi bir metin düzenleyiciyle (Xcode değil!) Açmak ve tüm tableViewCell düğümlerini bulmaya çalışmaktır. Örneğin CMD + F'ye<tableViewCell contentMode="scaleToFill" basın , yazın ve Enter'a basın. Muhtemelen öğreneceksiniz, bununla aynı satırlar:

<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="GenericCellID" id="kBr-Qn-Tki">

Lütfen dikkatinizi reuseIdentifier="GenericCellID"anahtar değere verin. Uyarıyı tetikleyen satırlar (tanımlayıcıları yeniden kullanmadan) böyle bir anahtar değerine sahip olmayacaktır. Metin düzenleyicinizde yukarıdaki düğümlere bakın tableViewControllerve aleroot'un cevabına göre Xcode'un film şeridi düzenleyicisini kontrol etmeniz ve düzeltmeniz gereken sınıf adına sahip düğümü göreceksiniz .


1
Film şeridinizi, film şeridi dosyanıza CTRL + tıklama yaparak Xcode ile kod olarak açabilirsiniz Open As>>Source Code
NSTJ

4

ReuseIdentifier'ı ayarlamanıza rağmen Xcode uyarınız hala kaybolmuyorsa, Menü "Ürün -> Temizle" yi deneyin. Bu bana yardımcı oldu ve bundan sonra uyarı artık görünmedi.


2

Çift tıklayarak bu uyarıyı bir yaban kazı takip (UITableViewCell seçilen almaz özgü) biraz yol açabilir beri, sadece bu bu uyarılara olacak otomatik çözümleme bazı ederken, eklemek istedim bazı olmayacaktır .

Storyboard'da tüm hücrelerinizi etiketlediğinizden eminseniz, projeyi yeniden oluşturun - uyarınız kaybolabilir (benimki gibi).


2

Bir dolu mary: XCode'u yeniden başlatmak benim için çalıştı (ama muhtemelen gerekli olan manuel bir yeniden oluşturmaydı).


1

Xcode 7 için bu uyarıyı aldım. Swift ile çalışıyorum. İlk görünüm denetleyicisi için gezinme denetleyicisini eklemedim. Bunu yaptığımda .. StoryBoard'dan bu uyarıyı aldım. Yaptığım şey:

  1. İki bölüm var
    1. Gezinme Denetleyicisi'nden Kök görünüm Denetleyicisine ve
    2. Kök Görünüm denetleyicisinden ilk Görünüm denetleyicinize.
  2. Kök görünüm denetleyicisini ilk görünüm denetleyicisine bağlayan segmenti seçin.
  3. Tanımlayıcıyı adlandırın
  4. Denetleyicinin "Prototip" yazılı bölümünü seçin -> orada tanımlayıcıyı bir seçenek olarak göreceksiniz.
  5. Daha önce girilen tanımlayıcının aynı adını yapıştırın.

Uyarı gider .. sdk temiz değilse :)


1

Restorasyon Kimliği yerine nesne üzerinde Yeniden Kullanım Tanımlayıcısını ayarladığınızdan emin olun . Her ikisi de film şeridi aracılığıyla kullanılabilir ve kolayca karıştırılabilir.

Film şeridi XML dosyasında ayarlamak isteyeceksiniz reuseIdentifier, değil restorationIdentifier.


0

Bu hatanın, birden çok prototip hücreniz olduğunda (tablo görünümü özelliklerinde) ve hepsine yeniden kullanım tanımlayıcıları vermediğinde ortaya çıktığını fark ettim .


Bunu da gördüm, tüm hücreleri aynı anda adlandırmanın bir yolu var mı yoksa bu uyarıları kaldırmanın başka bir yolu var mı?
CatsLoveJazz

1
Her Prototip hücresinin kendine özgü bir adı olmalıdır. Yani otomatik olarak yapmanın bir yolu yok
Vincent

0

Tanımlayıcı, .m dosyanızda belirttiğiniz addır. Doldurulmadığında hücreye başvurmak mümkün değildir.


0

Bu, yeniden kullanım tanımlayıcısını programlı olarak ayarlamak içindir

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath*)indexPath 
{
    static NSString *cellIdentifier = @"wot";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

    if (!cell)
        cell = [[UITableViewCell alloc] initWithStyle: someStyle reuseIdentifier: cellIdentifier];

    return cell;
}
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.