我正在尝试为UICollectionView保存indexPath,但是我收到以下错误:
libc++abi.dylib: terminating with uncaught exception of type NSException
我的代码是: 保存索引路径:
[[NSUserDefaults standardUserDefaults] setObject:indexPath forKey:@"CollectionIndex"];
[[NSUserDefaults standardUserDefaults] synchronize];
加载indexPath:
NSIndexPath *storedIndexPath = [[NSUserDefaults standardUserDefaults] objectForKey:@"CollectionIndex"];
我已经注释掉代码以找出导致错误的代码,这是我用来保存创建SIGABRT错误的indexPath的代码。
答案 0 :(得分:8)
阅读NSUserDefaults > setObjectForKey
的文档:
“value参数只能是属性列表对象:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。对于NSArray和NSDictionary对象,其内容必须是属性列表对象。请参阅”什么是属性列表?“在“物业清单编程指南”中。“
要在UserDefaults中保存indexPath,您必须进行另一种表示,例如作为字典:
[[NSUserDefaults standardUserDefaults] setObject:@{@"row": @(indexPath.row),
@"section": @(indexPath.section)}
forKey:@"CollectionIndex"];