objective-c - 错误 : unrecognized selector sent to instance

标签 objective-c cocoa-touch ios uitableview

我有一个自定义对象,Spaces:

#import "Spaces.h"


@implementation Spaces

@synthesize spaceName;
@synthesize spaceUsers;
@synthesize spaceIcon;
@synthesize spaceID;

@synthesize imageURLString;


- (void)dealloc
{
    [spaceName release];
    [spaceUsers release];
    [spaceIcon release];

    [imageURLString release];

    [super dealloc];
}

@end

我的 Root View Controller 实现了一个 cellForRowAtIndexPath: 并从 SpacesNSArray 中获取:

    [[cell spaceName] setText:aSpace.spaceName];
    [[cell spaceChatType] setText:@"People"];
    [[cell spaceActiveUsers] setText:aSpace.spaceUsers];

这工作正常,我可以单击以进入详细 View 并返回列表,但是在表格 View 和详细 View 之间来回单击 5-6 次后,我在 [[ cell spaceName] setText:aSpace.spaceName]; 这是

'-[__NSCFSet spaceName]: unrecognized selector sent to instance 0x6047b90'"

求助!任何见解将不胜感激!

更新:

我仍然遇到同样的错误,但我已将错误范围缩小为:

-我正在 didSelectRowAtIndexPath 上创建一个详细 View Controller ... - 详细 View 被推送到 View Controller 并显示正常,我还添加了一个后退按钮。 - 详细 View 加载信息并在计时器上刷新 - 按后退按钮返回表格 ListView

这是我的详细 View 没有从内存中释放的问题,所以我在 View 之间来回切换的次数越多,同时关闭的计时器就越多。我向 viewWillDisappear 添加了一个检查,通过设置一个 bool 值来停止计时器。

我注意到详细 View 没有卸载...

来自 RootViewController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //no longer on initial view
    isinit = NO;

    //hide keyboard
    [spacesSearch resignFirstResponder];

    if (spaces != nil && spaces.count > 0)
    {
        //set back button reference
        UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Spaces" style:UIBarButtonItemStylePlain target:self action:@selector(returnSpacesList:)];  
        self.navigationItem.backBarButtonItem = backButton;

        [backButton release];

        DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 

        //Grab Data from selected Space object and pass to DetailViewController
        Spaces *aSpace = nil;
        if (tableView == self.searchDisplayController.searchResultsTableView)
        {
            if ([self.filteredListContent count] == 0)
            {
                //self.lastSearchText
                NSLog(@"Create new space code!");
            }
            else
            {
                aSpace = [self.filteredListContent objectAtIndex:indexPath.row];
            }
        }
        else
        {
            aSpace = [spaces objectAtIndex:[indexPath row]];
        }

        //set title and display
        self.navigationController.title = [NSString stringWithFormat:@"/%@/",aSpace.spaceName];

        //pass data
        [details passedValue:aSpace.spaceID :aSpace.spaceName];

        [self.navigationController pushViewController:details animated:YES];

        [aSpace release];
        [details release];

    }
}

如何强制从内存中释放详细 View ?

谢谢

最佳答案

听起来 [cell spaceName] 已自动发布。我看不出你是如何定义它的,但请看一下你的代码的那部分。
如果您需要更多帮助,则需要提供更多代码。

关于objective-c - 错误 : unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890201/

相关文章:

objective-c - 钥匙串(keychain)数据同步到iCloud会备份吗

iphone - 使用UIWebView显示html文件

iphone - UIPasteboard 粘贴板 App iOS iPhone

iphone - 在 Xcode 4 和 iOS 4 中定义成员和属性

ios - UIPrintPageRenderer/HTML 到 PDF 问题 : extra blank space added in rendered PDF

ios - 当我模拟后台提取时,我收到一条警告,说从未调用完成处理程序

iphone - 如何以编程方式检查 Mobclix 广告是否正在运行?

ios - 当应用程序在前台使用 ios 8 时,调度程序 UILocalNotification 不工作

iphone - Core Data 的多线程使用(NSOperationQueue 和 NSManagedObjectContext)

objective-c - UItableview 不刷新核心数据的更新数据