当前位置: 首页 > 知识库问答 >
问题:

试图在目标C中插入非属性值问题[重复]

云何平
2023-03-14

我已经被这个问题困扰了几个小时,老实说,我找不到解决方法,我试图使用UserDefaults存储NSDictionary,但由于某种原因,它在运行时在main方法崩溃,即使我存储的NSDictionary是UserDefaults的合法类型。

这是我的代码:

-(void)getEventAlbums
{
    NSURL *baseURL = [NSURL URLWithString:[ELConfig getBaseUrl]];
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    
    NSString *urlString = [NSString stringWithFormat:@"album/getAlbums/%@", [self.mEventData valueForKey:@"eventKey"]];
    [manager POST:urlString parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
        
        _albumsDict = [(NSDictionary *)responseObject objectForKey:@"data"];

        [[NSUserDefaults standardUserDefaults] setObject:_albumsDict forKey:@"feedAlbums"];
        
        
        
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        
        // failure
        
        NSLog(@"Error retreiving albums");
        
    }];
}

BTWALBUMSDIC是NSARRAY类型。

共有2个答案

王修为
2023-03-14

代码可以帮助您检查是否有有效的属性列表:

- (BOOL)isValidPropertyList:(id)object {
    
    NSData      *xmlData;
    NSError     *error;
    
    xmlData=[NSPropertyListSerialization
        dataWithPropertyList:object
        format:NSPropertyListXMLFormat_v1_0
        options:0
        error:&error
    ];
    
    if(xmlData)
    {
        return YES;
    }
    else
    {
        NSLog(@"Tested object is not a valid property list: %@",error);
    }
    
    return NO;
}

添加到您的类中,并使用[self isValidPropertyList:_AlbumsDict];

秦安宁
2023-03-14

检查那个ResponseObject中的所有嵌套数据(在所有数组和字典中)。某处有一些不属于NSArray、NSDictionary、NSString、NSNumber、NSData或NSDate类的东西。通过这种方式,正如您所使用的那样,您只能存储100%的plist兼容数据。

如果您的类支持NSCoding协议,您可以将您的对象转换为NSData,并将其保存在NSUserDefaults中。

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 调用非对象上的成员函数[重复] (8个答案) 6年前关闭。 在控制页面上: 在查看页面上: 错误是: 注意:尝试在第22行的C:\ wamp \ www \ phone \ pages \ init.php中获取非对象的属性 你能修好它吗?我不知道发生了什么。 问题答案: 检查手册。它返回一个对象,而不是对象数组。 我猜你想要这样的东西 可能我建议您看看

  • 我使用QAF和ant作为构建脚本,IVY作为依赖管理工具。为了自动安装ivy,构建脚本有以下ant目标: 有一些 build.属性,其中属性 提供下载常春藤 ON 或 OFF 通过提供相应的值或。 现在的问题是,无论我为提供什么值build.properties它都认为

  • BindingX目前支持大部分对View的图形变换能力,如scale/rotate等等。详细说明如下: 属性 功能 transform.translate x&y方向平移 transform.translateX x方向平移 transform.translateY y方向平移 transform.scale x&y方向缩放 transform.scaleX x方向缩放 transform.sca

  • 我想在提交时显示一个弹出窗口,如果值小于max属性。我可以使用如下的HTML5属性实现这一点:,但问题是,当max值是像这样的浮点数时,它会显示另一个弹出窗口,说明该值必须小于21。 我已经搜索过了,我可以用Javascript解决这个问题,但我希望使用max属性,即使值是浮点数。 我希望表单能够提交即使值是21或21.1,除非它是21.2或更多。

  • 问题内容: 是否可以在SASS中访问HTML属性值?我有一行代码说 哪里是一些jQuery东西的结果。我需要计算一些CSS。如何将其另存为SASS变量? 或者,是否可以计算某个父元素的子元素数量?说我有这段代码: (您可能已经猜到了,matches的值与列表项的数量匹配。)SASS可以对列表项进行计数并将该数字保存为变量吗? 任何想法将不胜感激。 问题答案: Sass只是CSS生成器。它实际上并没

  • 我正试图使用ApachePDFBox将图像保存到现有的pdf中,但我的内容被删除,当我将图像放在pdf上时,会得到一个空白文档,有解决方案吗? 我的代码是这样的。