[UIFont CacheKey count]:发送到实例IOS的无法识别的选择器

时间:2014-11-20 15:24:21

标签: ios objective-c

我尝试使用NSMutableArray,当我在viewDidLoad中使用它时效果很好但是我发现了这个问题:

  

[UIFont CacheKey count]:无法识别的选择器发送到实例

当我在其他地方使用它时。

我是最新的,我需要你的帮助

NSMutableArray *MessageList;

@synthesize _table,newwMessage,addMessage;

extern User *user_selected;

- (void)viewDidLoad {
    [super viewDidLoad];
   // MessageList =  [NSMutableArray array];
    MessageList = [[NSMutableArray alloc] init];

    // test web Services
    webServices *web= [[webServices alloc] init];
    AppDelegate *app=  (AppDelegate*)[[UIApplication sharedApplication] delegate];

    [web getConversation:app.user_connect.pk :user_selected.pk completion:^(NSMutableArray * ListMessages) {
        MessageList=ListMessages;

          NSLog(@"haut > %d ",MessageList.count);   // work 
               [_table reloadData];
    }];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString* cellIdentifier = @"messagingCell";

       NSLog(@"haut > %d ",MessageList.count);      // don't work 

    PTSMessagingCell * cell = (PTSMessagingCell*) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[PTSMessagingCell alloc] initMessagingCellWithReuseIdentifier:cellIdentifier];
    }
    cell.contentView.backgroundColor = [UIColor colorWithRed:(254/255.0) green:(168/255.0) blue:(198/255.0) alpha:1] ;;
    [self configureCell:cell atIndexPath:indexPath];

    return cell;
}

1 个答案:

答案 0 :(得分:0)

你可能正在使用ARC。 因此,您的对象将在viewDidLoad的末尾自动释放。 而且由于你的对象被释放(但没有被取消),内存占用已被重用,你指向它。但那时它是另一个对象

要纠正此问题,您必须在阵列上添加强大的属性

@property (nonatomic, strong) NSMutableArray *messageList

您可以将它放在头文件中,也可以放在.m

的私有类别中

然后像这样使用你的财产:

self.messageList = [[NSMutableArray alloc] init];

PS:命名约定说最好用小写字母开始一个名字;)!