我创建UITableView
项目的XCode 4.6与iOS 6.1 SDK,和目标SDK设置为5.1,当应用程序调用dequeueReusableCellWithIdentifier
中cellForRowAtIndexPath
功能,应用程序抛出一个异常,模拟器是5.1,在模拟器6.x的就可以了。
1: [UITableView dequeueReusableCellWithIdentifier:forIndexPath:]:
无法识别的选择发送到实例
2:终止应用程序由于未捕获的异常NSInvalidArgumentException
,原因: -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]:
无法识别的选择发送到实例
如果你看看苹果的文件,你会看到dequeueReusableCellWithIdentifier: forIndexPath:
进来与iOS 6.0。
这意味着,如果你试图调用在iOS 5.X设备,这个方法,它会抛出异常。
这将是更好,如果你使用的旧的“ dequeueReusableCellWithIdentifier:
”呼叫如果可能的话。
在两个电话之间的一个很大的区别是,后者(旧的), 可以返回零,在这种情况下,你需要分配/初始化一个新的可重复使用的电池。
1. dequeueReusableHeaderFooterViewWithIdentifier
可用性
可用在IOS 2.0和更高。
- >运行此功能所需的最低IOS版本是奥斯2.0
2 .dequeueReusableCellWithIdentifier:forIndexPath:
可用性
可用在IOS 6.0及更高版本。
- >运行此功能所需的最低IOS版本的iOS是6.0
编辑如果要使用此功能,您可以检查您的当前设备的版本,然后实现这个
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
NSLog(@"curr version = %f",[currSysVer floatValue]);
if ([currSysVer floatValue] >= 6) {
//iOS 6.0 and later code
// dequeueReusableCellWithIdentifier:forIndexPath:
}
else{
//dequeueReusableHeaderFooterViewWithIdentifier
}