Iphone NSObject和NSMutableArray问题
您好,我有一个NS对象:Iphone NSObject和NSMutableArray问题,iphone,nsmutablearray,nsobject,Iphone,Nsmutablearray,Nsobject,您好,我有一个NS对象: @interface Checkin : NSObject { NSString *name; NSString *profID; NSString *time; NSString *lon; NSString *lat; NSString *country; NSString *city; NSString *place; NSString *photoURL; NSMutableArr
@interface Checkin : NSObject {
NSString *name;
NSString *profID;
NSString *time;
NSString *lon;
NSString *lat;
NSString *country;
NSString *city;
NSString *place;
NSString *photoURL;
NSMutableArray *taggedID;
NSMutableArray *taggedName;
}
@property(nonatomic, retain)NSString *name;
@property(nonatomic, retain)NSString *profID;
@property(nonatomic, retain)NSString *time;
@property(nonatomic, retain)NSString *lon;
@property(nonatomic, retain)NSString *lat;
@property(nonatomic, retain)NSString *country;
@property(nonatomic, retain)NSString *city;
@property(nonatomic, retain)NSString *place;
@property(nonatomic, retain)NSString *photoURL;
@property(nonatomic, retain)NSMutableArray *taggedID;
@property(nonatomic, retain)NSMutableArray *taggedName;
@end
现在我想创建一个NSMutable数组,并在其中添加几个签入
当我这样做时:
Checkin *checkinsA = [[NSObject alloc] init];
NSDictionary *decodedJson = result;
NSArray *users = [decodedJson objectForKey:@"data"];
for(NSDictionary *user in users) {
NSLog(@"Created item: %@ \n", [user objectForKey:@"created_time"]);
checkinsA.time = [NSString stringWithFormat:@"%@",[user objectForKey:@"created_time"]];
NSDictionary *fromData = [user objectForKey:@"from"];
NSLog(@"user id is: %@ \n", [fromData objectForKey:@"id"]);
checkinsA.profID = [fromData objectForKey:@"id"];
NSLog(@"user name is: %@\n ", [fromData objectForKey:@"name"]);
checkinsA.name =[fromData objectForKey:@"name"];
NSDictionary *placeData = [user objectForKey:@"place"];
NSDictionary *locationData = [placeData objectForKey:@"location"];
NSLog(@"City: %@ \n", [locationData objectForKey:@"city"]);
checkinsA.city = [locationData objectForKey:@"city"];
NSLog(@"Country: %@ \n", [locationData objectForKey:@"country"]);
checkinsA.country = [locationData objectForKey:@"country"];
NSLog(@"Latitude: %@ \n", [locationData objectForKey:@"latitude"]);
checkinsA.lat = [locationData objectForKey:@"latitude"];
NSLog(@"Longitude: %@ \n", [locationData objectForKey:@"longitude"]);
checkinsA.lon = [locationData objectForKey:@"longitude"];
NSLog(@"Place name: %@ \n", [placeData objectForKey:@"name"]);
checkinsA.place = [placeData objectForKey:@"name"];
NSDictionary *tagData = [user objectForKey:@"tags"];
NSArray *tagDataArray = [tagData objectForKey:@"data"];
for(NSDictionary *tagData2 in tagDataArray){
NSLog(@"tagged user id is: %@ \n", [tagData2 objectForKey:@"id"]);
[checkinsA.taggedID addObject:[tagData2 objectForKey:@"id"]];
NSLog(@"tagged user name is: %@\n ", [tagData2 objectForKey:@"name"]);
[checkinsA.taggedName addObject:[tagData2 objectForKey:@"name"]];
}
[checkinArray addObject:checkinsA];
}
我得到一个错误:
-[NSObject setTime:]:发送到实例的无法识别的选择器
checkinsA.time=[NSString stringWithFormat:@%@[user objectForKey:@created_time]]
更改checkinsA.time checkins.id等的值的正确方法是什么?您会遇到该错误,因为checkinsA不是签入对象,它是NSObject,因为这是您分配的,NSObject没有设置时间方法。请尝试以下方法:
Checkin *checkinsA = [[Checkin alloc] init];
您之所以会出现此错误,是因为checkinsA不是Checkin对象,它是NSObject,因为这是您分配的,而NSObject没有setTime方法。请尝试以下方法:
Checkin *checkinsA = [[Checkin alloc] init];
天哪,我觉得自己太蠢了!!非常感谢你。有没有关于如何从checkinArray检索数据的建议?假设它是您提到的NSMutableArray,我没有看到您粘贴的代码中的声明,您可以使用常规的NSArray方法,如objectAtIndex:Descripted是的,我知道objectAtIndex,但我不知道数组的长度。我应该使用count,然后使用objectAtIndex:iYes,如果要迭代数组,可以使用checkinArray.count限定的for循环,也可以使用EnumerateObjectsSusingBlock:OMG我觉得太蠢了!!非常感谢你。有没有关于如何从checkinArray检索数据的建议?假设它是您提到的NSMutableArray,我没有看到您粘贴的代码中的声明,您可以使用常规的NSArray方法,如objectAtIndex:Descripted是的,我知道objectAtIndex,但我不知道数组的长度。我应该使用count,然后使用objectAtIndex:iYes,如果要迭代数组,可以使用由checkinArray.count或enumerateObjectsUsingBlock限定的for循环: