iOS NSString 内存泄漏 , 求解决
2012-08-10 11:22
204 查看
递归, autorelease对象如何避免内存泄漏????
-(NSString *) getStuJsonString : (StuNode *) stuNode{
NSString *nodeJsonString = [[NSString
alloc] initWithString:@""];
{
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:
@"{"]] autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"visible\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.Visible]]]
autorelease];
//othters
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"title\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.title]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"courseName\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.courseName]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"href\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.href]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"sid\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.sid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"rid\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.rid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"courseID\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.courseID]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"studentID\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.studentID]]]
autorelease];
//rtdata
if(stuNode.RTData ==
nil || stuNode.RTData == (id)[NSNull
null]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"RTData\":null,"]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"RTData\":{"]]
autorelease];
//core
NSMutableArray *arr_core = stuNode.RTData.core;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"core\":["]]
autorelease];
for(RTDataNodeCoreItem* coreItem
in arr_core) {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"{"]]
autorelease];
if([coreItem.Itemid
compare:@"score"] !=
NSOrderedSame) {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"value\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.value]]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"value\":["]]
autorelease];
for(RTDataNodeCoreItem *score_core_item
in coreItem.scoreValue){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"{"]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"value\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.value]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"id\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.Itemid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"type\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.type]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"io\":\"%@\"", [self
FormatNillOrNilOrnull:score_core_item.io]]]
autorelease];
if(score_core_item == [coreItem.scoreValue
lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"},"]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"id\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.Itemid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"type\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.type]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"io\":\"%@\"", [self
FormatNillOrNilOrnull:coreItem.io]]]
autorelease];
if(coreItem == [arr_core lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"},"]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//comments
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"comments\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.comments]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"launchData\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.launchData]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"suspendData\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.suspendData]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"scoID\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.scoID]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"scoType\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.scoType]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.parseJSON]]]
autorelease];
//cmiParL1
NSMutableArray *arr_cmiParL1 = stuNode.RTData.cmiParL1;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"cmiParL1\":["]]
autorelease];
for(NSString *obj_cmiParL1
in arr_cmiParL1) {
if(obj_cmiParL1 == [arr_cmiParL1 lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\"", obj_cmiParL1]]
autorelease];
}else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\",", obj_cmiParL1]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//cmiParL2
NSMutableArray *arr_cmiParL2 = stuNode.RTData.cmiParL2;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"cmiParL2\":["]]
autorelease];
for(NSString *obj_cmiParL2
in arr_cmiParL2) {
if(obj_cmiParL2 == [arr_cmiParL2 lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\"", obj_cmiParL2]]
autorelease];
}else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\",", obj_cmiParL2]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//launch_data
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"launch_data\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.launch_data]]]
autorelease];
//student_data
NSMutableArray *arr_student_data = stuNode.RTData.student_data;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"student_data\":["]]
autorelease];
for(RTDataNodeCoreItem* coreItem
in arr_student_data) {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"{"]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"value\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.value]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"id\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.Itemid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"type\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.type]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"io\":\"%@\"", [self
FormatNillOrNilOrnull:coreItem.io]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//suspend_data
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"suspend_data\":\"%@\"", [self
FormatNillOrNilOrnull:stuNode.RTData.suspend_data]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"},"]]
autorelease];
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"scoType\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.scoType]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.toJSONString]]]
autorelease];
//items
NSLog(@"item:%@", stuNode.title);
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"items\":["]]
autorelease];
if(stuNode.items !=
nil) {
NSMutableArray *itemArray = stuNode.items;
for(StuNode *item
in itemArray){
if(item == [itemArray lastObject]){
NSAutoreleasePool *pool = [[NSAutoreleasePool
alloc] init];
nodeJsonString =[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"%@", [self
getStuJsonString:item]]] ;
[pool
drain];
}else {
NSAutoreleasePool *pool = [[NSAutoreleasePool
alloc] init];
nodeJsonString = [[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"%@", [self
getStuJsonString:item]]];
[pool
drain];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@","]]
autorelease];
}
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\"", [self
FormatNillOrNilOrnull:stuNode.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
return [nodeJsonString autorelease]; ;
}
-(NSString *) getStuJsonString : (StuNode *) stuNode{
NSString *nodeJsonString = [[NSString
alloc] initWithString:@""];
{
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:
@"{"]] autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"visible\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.Visible]]]
autorelease];
//othters
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"title\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.title]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"courseName\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.courseName]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"href\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.href]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"sid\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.sid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"rid\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.rid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"courseID\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.courseID]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"studentID\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.studentID]]]
autorelease];
//rtdata
if(stuNode.RTData ==
nil || stuNode.RTData == (id)[NSNull
null]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"RTData\":null,"]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"RTData\":{"]]
autorelease];
//core
NSMutableArray *arr_core = stuNode.RTData.core;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"core\":["]]
autorelease];
for(RTDataNodeCoreItem* coreItem
in arr_core) {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"{"]]
autorelease];
if([coreItem.Itemid
compare:@"score"] !=
NSOrderedSame) {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"value\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.value]]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"value\":["]]
autorelease];
for(RTDataNodeCoreItem *score_core_item
in coreItem.scoreValue){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"{"]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"value\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.value]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"id\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.Itemid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"type\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.type]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:score_core_item.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"io\":\"%@\"", [self
FormatNillOrNilOrnull:score_core_item.io]]]
autorelease];
if(score_core_item == [coreItem.scoreValue
lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"},"]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"id\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.Itemid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"type\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.type]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"io\":\"%@\"", [self
FormatNillOrNilOrnull:coreItem.io]]]
autorelease];
if(coreItem == [arr_core lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"},"]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//comments
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"comments\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.comments]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"launchData\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.launchData]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"suspendData\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.suspendData]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"scoID\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.scoID]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"scoType\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.scoType]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.parseJSON]]]
autorelease];
//cmiParL1
NSMutableArray *arr_cmiParL1 = stuNode.RTData.cmiParL1;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"cmiParL1\":["]]
autorelease];
for(NSString *obj_cmiParL1
in arr_cmiParL1) {
if(obj_cmiParL1 == [arr_cmiParL1 lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\"", obj_cmiParL1]]
autorelease];
}else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\",", obj_cmiParL1]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//cmiParL2
NSMutableArray *arr_cmiParL2 = stuNode.RTData.cmiParL2;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"cmiParL2\":["]]
autorelease];
for(NSString *obj_cmiParL2
in arr_cmiParL2) {
if(obj_cmiParL2 == [arr_cmiParL2 lastObject]){
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\"", obj_cmiParL2]]
autorelease];
}else {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"%@\",", obj_cmiParL2]]
autorelease];
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//launch_data
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"launch_data\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.RTData.launch_data]]]
autorelease];
//student_data
NSMutableArray *arr_student_data = stuNode.RTData.student_data;
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"student_data\":["]]
autorelease];
for(RTDataNodeCoreItem* coreItem
in arr_student_data) {
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"{"]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"value\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.value]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"id\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.Itemid]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"type\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.type]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.toJSONString]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\",", [self
FormatNillOrNilOrnull:coreItem.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"io\":\"%@\"", [self
FormatNillOrNilOrnull:coreItem.io]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
//suspend_data
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"suspend_data\":\"%@\"", [self
FormatNillOrNilOrnull:stuNode.RTData.suspend_data]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"},"]]
autorelease];
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"scoType\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.scoType]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"toJSONString\":\"%@\",", [self
FormatNillOrNilOrnull:stuNode.toJSONString]]]
autorelease];
//items
NSLog(@"item:%@", stuNode.title);
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"\"items\":["]]
autorelease];
if(stuNode.items !=
nil) {
NSMutableArray *itemArray = stuNode.items;
for(StuNode *item
in itemArray){
if(item == [itemArray lastObject]){
NSAutoreleasePool *pool = [[NSAutoreleasePool
alloc] init];
nodeJsonString =[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"%@", [self
getStuJsonString:item]]] ;
[pool
drain];
}else {
NSAutoreleasePool *pool = [[NSAutoreleasePool
alloc] init];
nodeJsonString = [[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"%@", [self
getStuJsonString:item]]];
[pool
drain];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@","]]
autorelease];
}
}
}
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"],"]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingFormat:@"\"parseJSON\":\"%@\"", [self
FormatNillOrNilOrnull:stuNode.parseJSON]]]
autorelease];
nodeJsonString = [[[NSString
alloc] initWithString:[nodeJsonString
stringByAppendingString:@"}"]]
autorelease];
}
return [nodeJsonString autorelease]; ;
}
相关文章推荐
- 一步步调试解决iOS内存泄漏
- iOS 检测内存泄漏Analyze的一些解决办法
- iOS中滤镜处理及相关内存泄漏问题的解决
- 简单内存泄漏检测方法,解决Detected memory leaks!问题
- iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance)
- [翻译] Facebook 的 iOS 内存泄漏监测自动化实践
- 解决iOS中因定时器的内存泄露
- 使用Xcode和Instruments调试解决iOS内存泄露
- java内存泄漏原因、判定及解决方法
- 简单内存泄漏检测方法 解决 Detected memory leaks! 问题
- 使用Xcode和Instruments调试解决iOS内存泄露
- 使用Xcode和Instruments调试解决iOS内存泄露
- 使用Xcode和Instruments调试解决iOS内存泄露
- 使用Xcode和Instruments调试解决iOS内存泄露
- 使用 Android Studio 检测内存泄漏与解决内存泄漏问题
- iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance)
- iOS开发之内存管理:借助工具解决内存问题
- 简单内存泄漏检测方法 解决 Detected memory leaks! 问题
- 内存泄漏及常见的解决办法
- 简单内存泄漏检测方法 解决 Detected memory leaks! 问题