【问题标题】:Local Storage crash when retrieving array检索阵列时本地存储崩溃
【发布时间】:2013-11-10 06:47:24
【问题描述】:

我不明白为什么我的应用会崩溃以及如何避免它,

在.h中

  @property (nonatomic)  NSArray * PersonsFromSearch;

在.m

碰撞区

 viewDidLoad
NSArray* nameArr;
   if([defaults objectForKey:@"Person1"])
   {
       nameArr = [NSArray arrayWithObjects: [defaults objectForKey:@"Person1"],Nil];//ate
       PersonsFromSearch = nameArr;//crashes here  :(
       NSLog(@"not crashed yet");
   }

在同一个文件中分配给本地存储

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self dismissKeyboard];
    //test solution :)
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];//store it !
    [defaults setObject:[PersonsFromSearch objectAtIndex:indexPath.row]     forKey:@"Person1"];//store 1 person Full details
    [[NSUserDefaults standardUserDefaults] synchronize];//store indeed
    //keep with code
}

崩溃细节:

2013-11-10 08:50:47.938 RevealControllerProject[1375:a0b] -[__NSCFArray objectForKey:]:无法识别的选择器发送到实例 0xe008a00

2013-11-10 08:50:47.942 RevealControllerProject[1375:a0b] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSCFArray objectForKey:]:发送了无法识别的选择器到实例 0xe008a00'

* 首先抛出调用栈:

【问题讨论】:

    标签: ios iphone ios6 crash xcode5


    【解决方案1】:

    使用PersonsFromSearch =[NSArray arrayWithArray:nameArr];

    【讨论】:

    • 刚刚检查过,是的,它是有效的。太长了就不贴了
    • { 地址 = "";手机 = "";电子邮件 = "bnetanyahu@knesset.gov.il";英文人 = "";脸书链接 = "";传真 1 = "02-5303367";传真 2 = "";文件名 = "114961.jpg";主页电子邮件 = "";家庭传真 = ""; HomePhone1 = ""; HomePhone2 = "";个人ID = 114961;人名 = "\U05d1\U05e0\U05d9\U05de\U05d9\U05df\U05e0\U05ea\U05e0\U05d9\U05d4\U05d5";电话1 =“02-6753227”;电话 2 = "";邮编 = ""; } 这就是它里面的内容
    • 我认为这是字典而不是数组
    • 我使用它并获得了相同的豁免 :(
    • 我有 NSArray 的类似项目,在我的搜索引擎中它可以工作
    猜你喜欢
    • 2016-05-02
    • 2023-04-10
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多