【发布时间】:2015-08-10 17:06:58
【问题描述】:
我是目标 c 的新手。 我不明白为什么我的函数不起作用,它在函数返回时出错 SIGBART。
+ (NSArray*) jsonToArray:(NSString*)jsonString
{
id mappedObj = nil;
RKObjectMappingProvider* mapProv = [[RKObjectMappingProvider alloc] init];
RKObjectMapping* answerMapping = [SMAnswersWrapper entityMappingForSerializer];
answerMapping.objectClass = [NSMutableDictionary class];
[mapProv setSerializationMapping:answerMapping forClass:[SMAnswersWrapper class]];
RKObjectMapping *proofsEntityMapping = [SMEntityArrayWrapper entityMappingWithContentMapping:answerMapping];
[mapProv setMapping:proofsEntityMapping forKeyPath:@""];
if (jsonString)
{
id obj = [jsonString objectFromJSONString];
if (obj)
{
RKObjectMapper* mapper = [[RKObjectMapper alloc] initWithObject:obj mappingProvider:mapProv];
RKObjectMappingResult* res = [mapper performMapping];
mappedObj = [res asCollection];
[mapper release];
}
}
[mapProv release];
return [[[mappedObj content] retain] autorelease];
}
错误位置在这一行:
return [[[mappedObj content] retain] autorelease];
谢谢。
编辑
我发现我的错误,我无法访问 [[[mappedObj content] retain] autorelease]; 的内容,我必须转换 mappedObj。
【问题讨论】:
-
检查主文件并检查
UIApplicationMain是否正常。否则在代码上放置断点并检查错误位置。 -
同样在
[mapProv setMapping:proofsEntityMapping forKeyPath:@""];中,您需要提供正确的密钥路径“Key”值。 -
我也真的建议你搬到
ARC -
UiapplicationMain 没问题,
[mapProv setMapping:proofsEntityMapping forKeyPath:@""];它可以工作,因为我检查了序列化数据,唯一的问题是当我返回数组时,我已经放置了断点,错误位置是return [[[mappedObj content] retain] autorelease];谢谢 -
抱歉 rckoenes 我不明白“移至
ARC”是什么意思? 编辑好的,我在谷歌上搜索,我明白你的意思我要尝试搬到 ARC
标签: ios objective-c memory-management error-handling xcode4