2013-11-01 26 views
7

Projemde bazı nesnelerin (aslında 'fotoğraf') ayrıntılara sahip bir ayrıntı ekranım var. Bunu yaparsa, ekran 3 en yeni ve 'Tümünü göster' düğmesini gösterir. Sorun, bu 3 yorumu nasıl göstereceğiydi. (Bunun için ben sadece bunun için LinearLayout kullanıyorum.) TableView görebildiğim kadar uygun değil (çünkü statik yüksekliğe sahip), bu yüzden özel şablonumu/kısmi görünümümü CommentView oluşturmaya ve her yorum için scrollView'a eklemeye karar verdim.Bu sınıf anahtar için kodlama uyumlu anahtar değer değil ... tekrar

XIB dosyasını görünüm ve bazı çocuk denetimleriyle (kullanıcı fotoğrafı, kullanıcı adı, tarih, metin) oluşturdum. Ayrıca, UIView'den teslim edilen CommentView sınıfını oluşturdum. Dosyanın sahibi CommentView olarak ayarlandı. Üst düzey görünümün sınıfı da CommentView olarak ayarlandı (Çeşitli kombinasyonları denedim). En üst düzey görünümden (vContent) ve tüm çocuk görüntülerinden çıkış oluşturdum.

Bu

CommentView.h geçerli:
#import "CommentView.h" 

@implementation CommentView 

-(void)awakeFromNib { 
    [[NSBundle mainBundle] loadNibNamed:@"CommentView" owner:self options:nil]; 
    [self addSubview: self.vContent]; 
} 

@end 

Sonra işletmenin görünüme yorum eklemek çalıştı ve soru başlığından o hata var: Bu CommentView.m

@interface CommentView : UIView 

@property (strong, nonatomic) IBOutlet CommentView *vContent; 
@property (weak, nonatomic) IBOutlet UIImageView *ivUserPhoto; 
@property (weak, nonatomic) IBOutlet UILabel *lUserName; 
@property (weak, nonatomic) IBOutlet UILabel *lCreated; 
@property (weak, nonatomic) IBOutlet UILabel *lText; 


@end 

olduğunu. O (ı PhotoViewController dan diyoruz)

Hata bu hat üzerinde gerçekleşir ... Aldım ama şimdi gerçekten sorunun ne olduğunu bilmiyorum ilk kez değil:

CommentView *commentView = [[[NSBundle mainBundle] loadNibNamed:@"CommentView" owner:self options:nil]objectAtIndex:0]; 

enter image description here

Tüm metni: '[setValue: forUndefinedKey:]: Bu sınıf, ivUserPhoto anahtarı için kodlama uyumlu anahtar değer değil.'

Yardımlarınız için gerçekten minnettarım! Teşekkür ederim!

+0

sizi var ... benim söz konusu ve bu benim için çalışmıyor neden ... Benim kod birine zaman kazandıracak umut gibi bir çok örnek vardır Hala neden tam anlamıyorum

aynı hata mesajını kapsayan MANY var olan sorulara baktı? – rmaddy

+0

Evet. Bu soruyu göndermeden önce çok fazla red ettik. Ayrıca, bu hatayı defalarca aldım ama sadece bu sefer nedenini bilmiyorum neden ... –

+0

nedenini basit. 'PhotoViewController'' CommentView' değildir, fakat bir yerde (muhtemelen senin ucun) böyle davranıyorsun. –

cevap

7

tekrar eşleşmeyen emin olmak. Bu yüzden böyle benim CommentView.m ...

@implementation CommentView 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 

    if (self) { 
     NSArray *nibContents = [[NSBundle mainBundle]loadNibNamed:@"CommentView" owner:self options:nil]; 
     [self addSubview:nibContents[0]]; 
    } 

    return self; 
} 

@end 

yeniden ... ve yolu böyle subviews ekliyorum: Beklediğim gibi

CommentView *commentView = [[CommentView alloc]initWithFrame:CGRectMake(0, 0, 320, 81)]; 

commentView.lUserName.text = comment.user.name; 
[self.vComments addSubview:commentView]; 

Şimdi O çalışıyor.

+0

Bu sadece benim pastamı kurtardı! Farklı sorulara çok benzer cevaplar gördüm, ama Benim için diğer durumlarda kullanılan 'instantiateWithOwner' yerine' loadNibNamed' çağırmak oldu. – dustinrwh

0

Bu sorun, xib'inizin bazı hatalı haritalaması olduğu anlamına gelir. Bu genellikle bir mülkün adını değiştirdiğinizde olur.

siz, xib dosyasına gidin sorunu kaçırmak TÜM çıkışları kesmek ve burada başka bir örnek buldum

+0

Soruları göndermeden önce birkaç kez yaptım :( –

İlgili konular