另一个客观问题。可能也是一个简单的......
在我的viewDidLoad方法中,我正在设置一个变量。我需要在- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
内访问它,但我接收到以下错误,我真的不知道如何排序它!
- [CFString intValue]:发送到解除分配的实例0x592dcb0的消息
- (void)viewDidLoad
{
//code to get json is here
totalInCategory = [parsedJson objectForKey:@"TotalInCategory"];
NSLog(@"totalincat %i",[totalInCategory intValue]);
[super viewDidLoad];
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)celllforRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"totalincat %i",[totalInCategory intValue]);
if((indexPath.row == [myArray count]-1)&&(indexPath.row < [totalInCategory intValue]))
{
//code to get more rows
[self.tableView reloadData];
}
}
我有NSString * totalInCategory;建立并合成。
totalInCategory在viewDidLoad中很好(据我所知),但是没有其他地方......任何想法都会非常方便!
答案 0 :(得分:4)
保留数据......
totalInCategory = [[parsedJson objectForKey:@"TotalInCategory"] retain];
objectForKey返回一个自动释放的对象,如果要使用它,则需要保留该对象。不要忘记在dealloc中添加[totalInCategory release];
。
答案 1 :(得分:2)
放:
[totalInCategory retain]
位于totalInCategory = [parsedJson objectForKey:@"TotalInCategory"];
这将保留变量,该变量目前由objectForKey
方法自动释放。
答案 2 :(得分:1)
在不知道parsedJson的类型的情况下我无法确定,但似乎你错过了一个保留。
totalInCategory = [[parsedJson objectForKey:@"TotalInCategory"] retain];
在类的添加
的dealloc方法中 [totalInCategory release];
如果你还没有,你应该也可以看看iOS Memory Management Programming Guide。
答案 3 :(得分:0)
将totalInCategory
与self
一起使用。如果您在属性声明中指定了保留。
self.totalInCategory = [parsedJson objectForKey:@"TotalInCategory"];