为什么返回功能发出SIGBART信号?
问题描述:
我是目标新手。 我不明白为什么我的函数不起作用,它使函数返回时出现错误SIGBART。为什么返回功能发出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。
答
我发现我的错误,我不能在[[[mappedObj content] retain] autorelease];
访问的内容,我不得不投mappedObj。
答
尝试以下操作:
+ (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];
if (mappedObj)
{
return [[[mappedObj content] retain] autorelease];
}
return [NSArray array];
}
在你的代码,如果jsonString
或obj
将是零,mappedObj不会被初始化。这种情况在访问[mappedObj content]
时可能会导致崩溃。
试试这个,这将帮助你.....
+0
谢谢,我已经找到了错误,我不能访问的内容没有施放我的目的。 – MohamedAli
检查主文件并检查'UIApplicationMain'是否正常。否则在代码上放置断点并检查错误位置。 – Esha
也在'[mapProv setMapping:proofsEntityMapping forKeyPath:@“”]; '你需要提供一个合适的键路径“Key”值。 – Esha
我也真的建议你移动到'ARC' – rckoenes