在未设置为'[(super or self) init...]'结果时返回'self'



有人知道为什么 Xcode 5 Analyze 会抱怨这一点:

ZIFollowerRequestsCell.m:34:5:在未设置为 "[(超级或自我)初始化...]"的结果

#import "ZIFollowerRequestsCell.h"
@implementation ZIFollowerRequestsCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"ZIFollowerRequestsCell" owner:self options:nil];
        self = [nibArray objectAtIndex:0];
        self.profileImageView.image = nil;
        self.profileImageView.userInteractionEnabled = YES;
   }
   return self;
}
@end
@interface ZIFollowerRequestsCell : UITableViewCell <UIGestureRecognizerDelegate>
@end

感谢您的任何帮助。

你正在分配两次自我。第二次,嗯,Xcode说的。此外,最好不要在构造函数中使用self.variable,只需使用 _variable 即可。

你注册了你的手机吗?假设你有一个 ZIFollowerRequestsCell.xib,其根视图是一个具有 ZIFollowerRequestsCell 类的单元格,请在视图控制器中尝试以下操作:

NSString * const REUSE_ID_CELL = @"ZIFollowerRequestsCell";
- (void)registerNIBs
{
    NSBundle *classBundle = [NSBundle bundleForClass:[ZIFollowerRequestsCell class]];
    UINib *nib = [UINib nibWithNibName:REUSE_ID_CELL bundle:classBundle];
    [[self tableView] registerNib:topNib forCellReuseIdentifier:REUSE_ID_CELL];
}
- (NSString *)reuseIdentifierForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return REUSE_ID_CELL; 
}
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *reuseID = [self reuseIdentifierForRowAtIndexPath:indexPath];
    UITableViewCell *cell = [[self tableView] dequeueReusableCellWithIdentifier:reuseID];
    return cell; 
}

相关内容

最新更新