我有一个自定义对象,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:
并从 Spaces
的 NSArray
中获取:
[[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/