当我尝试在日志中打印json值数组时,我得到的是地址而不是值。这是我编码的方式。
NSData *jsonData = [json dataUsingEncoding:NSASCIIStringEncoding];
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
NSMutableArray *tempArray = [NSMutableArray arrayWithCapacity:jsonArray.count];
NSMutableArray *anotherTempArray = [NSMutableArray arrayWithCapacity:jsonArray.count];
NSDictionary *dict;
for(dict in jsonArray)
{
NSString *projectName = dict[@"Name"];
NSString *urlText = dict[@"Url"];
NSLog(@"Url text in array = %@", urlText);
NSString *attch = dict[@"attachmentes"];
NSLog(@"Attached url in array = %@", attch);
NSString *projID = dict[@"ProjectID"];
NSLog(@"Project ID in array = %@", projID);
SaveAttachment *saveAt = [[SaveAttachment alloc] initWithName:projectName withList:@"View" withAttachment:@"View"];
[tempArray addObject:saveAt];
SaveProjectId *saveProj = [[SaveProjectId alloc] initWithProjectId:projID];
saveProj.projectId = projID;
[anotherTempArray addObject:saveProj];
}
array = tempArray;
[self.tableViewProject reloadData];
NSLog(@"Array of project IDs === %@", anotherTempArray); //Get values (array of project ids here.
}
答案 0 :(得分:3)
替换
SaveProjectId *saveProj = [[SaveProjectId alloc] initWithProjectId:projID];
saveProj.projectId = projID;
[anotherTempArray addObject:saveProj];
与
[anotherTempArray addObject:projID];
答案 1 :(得分:1)
这是因为你的 anotherTempArray 包含SaveProjectId的对象,即,每次在for循环中你都要添加 saveProj 对象而不是 projID 。这就是你的数组显示 SaveProjectId 对象的原因。
如果您想直接保存它们,请使用以下修改
[anotherTempArray addObject:projID];
或者你可以使用喜欢(这是我更喜欢的)
NSLog(@"First project ID === %@", [anotherTempArray objectAtindex:0] projectId]);
答案 2 :(得分:0)
您正在将SaveProjectId对象存储在数组中,因此当您打印内容时,您会看到这些对象的地址。
答案 3 :(得分:0)
你的“anotherTemoArray”有SaveProbectId的对象,所以你必须将索引的对象传递给SaveProjectId然后你才能看到数组信息
答案 4 :(得分:0)
调用NSLog(@"Array of project IDs === %@", anotherTempArray);
时,正在调用'anotherTempArray'中的每个对象上的-(NSString*)description
方法。
在您的情况下,意味着在-(NSString*)description
个对象上调用SaveProjectId
。覆盖它以打印出你想要的东西......例如。
-(NSString*)description {
return [NSString stringWithFormat:@"SaveProjectId: %@",self.projectId];
}