我的 iOS 应用程序中有以下方法。该声明:
GMSMarker *marker = [places objectForKey:place];
并不总是找到钥匙的对象,当我确定要找到一个对象时。
方法是:
- (void)removePlacesOfType:(AmenityType)type {
NSMutableArray* objectsToRemove = [[NSMutableArray alloc] init];
for (Place *place in places) {
if (place.type == type) {
GMSMarker *marker = [places objectForKey:place];
NSLog(@"%@ /// %@",place, marker);
marker.map = nil;
[objectsToRemove addObject:place];
}
}
[places removeObjectsForKeys:objectsToRemove];
}
更新以包括对象转储:
2013-10-28 13:11:20.988 Trancierge[12881:70b] **Pre For-Loop
2013-10-28 13:11:20.989 Trancierge[12881:70b] Markers built: 16
2013-10-28 13:11:20.989 Trancierge[12881:70b] <GMSMarker: 0x1b29cd30> (null) (-27.475179, 153.016384), <UIImage: 0x9e45680>
2013-10-28 13:11:20.989 Trancierge[12881:70b] <GMSMarker: 0x1b2b3550> (null) (-27.477081, 153.012322), <UIImage: 0x9e45680>
2013-10-28 13:11:20.990 Trancierge[12881:70b] <GMSMarker: 0x1b27d9c0> (null) (-27.477321, 153.012479), <UIImage: 0x9e45680>
2013-10-28 13:11:20.990 Trancierge[12881:70b] <GMSMarker: 0x1b2b2d80> (null) (-27.477032, 153.013461), <UIImage: 0x9e45680>
2013-10-28 13:11:20.990 Trancierge[12881:70b] <GMSMarker: 0x1b27d6f0> (null) (-27.474801, 153.016204), <UIImage: 0x9e45680>
2013-10-28 13:11:20.990 Trancierge[12881:70b] <GMSMarker: 0x1b27deb0> (null) (-27.476008, 153.013956), <UIImage: 0x9e45680>
2013-10-28 13:11:20.990 Trancierge[12881:70b] <GMSMarker: 0x1b27e0b0> (null) (-27.476420, 153.012121), <UIImage: 0x9e45680>
2013-10-28 13:11:20.991 Trancierge[12881:70b] <GMSMarker: 0x1b27e2e0> (null) (-27.477069, 153.012231), <UIImage: 0x9e45680>
2013-10-28 13:11:20.991 Trancierge[12881:70b] <GMSMarker: 0x1b27e510> (null) (-27.477887, 153.012734), <UIImage: 0x9e45680>
2013-10-28 13:11:20.991 Trancierge[12881:70b] <GMSMarker: 0x1b27e740> (null) (-27.477337, 153.012621), <UIImage: 0x9e45680>
2013-10-28 13:11:20.991 Trancierge[12881:70b] <GMSMarker: 0x1b27e970> (null) (-27.475651, 153.013364), <UIImage: 0x9e45680>
2013-10-28 13:11:20.992 Trancierge[12881:70b] <GMSMarker: 0x1b27eba0> (null) (-27.477033, 153.013458), <UIImage: 0x9e45680>
2013-10-28 13:11:20.992 Trancierge[12881:70b] <GMSMarker: 0x1b27edd0> (null) (-27.476088, 153.016655), <UIImage: 0x9e45680>
2013-10-28 13:11:20.992 Trancierge[12881:70b] <GMSMarker: 0x1b27f000> (null) (-27.475618, 153.016321), <UIImage: 0x9e45680>
2013-10-28 13:11:20.992 Trancierge[12881:70b] <GMSMarker: 0x1b27f240> (null) (-27.477225, 153.016497), <UIImage: 0x9e45680>
2013-10-28 13:11:20.992 Trancierge[12881:70b] <GMSMarker: 0x1b27f480> (null) (-27.477740, 153.012813), <UIImage: 0x9e45680>
2013-10-28 13:11:20.993 Trancierge[12881:70b] **In For-Loop
2013-10-28 13:11:20.993 Trancierge[12881:70b] <Place: 0x1b2bce90> /// (null)
2013-10-28 13:11:20.993 Trancierge[12881:70b] <Place: 0x1b2b5100> /// <GMSMarker: 0x1b2b3550> (null) (-27.477081, 153.012322), <UIImage: 0x9e45680>
2013-10-28 13:11:20.993 Trancierge[12881:70b] <Place: 0x1b2b2d60> /// (null)
2013-10-28 13:11:20.993 Trancierge[12881:70b] <Place: 0x1b27d630> /// (null)
2013-10-28 13:11:20.993 Trancierge[12881:70b] <Place: 0x1b27d7e0> /// (null)
2013-10-28 13:11:20.994 Trancierge[12881:70b] <Place: 0x1b27df90> /// (null)
2013-10-28 13:11:20.994 Trancierge[12881:70b] <Place: 0x1b27e1c0> /// (null)
2013-10-28 13:11:20.994 Trancierge[12881:70b] <Place: 0x1b27e3f0> /// (null)
2013-10-28 13:11:20.994 Trancierge[12881:70b] <Place: 0x1b27e620> /// <GMSMarker: 0x1b27e510> (null) (-27.477887, 153.012734), <UIImage: 0x9e45680>
2013-10-28 13:11:20.994 Trancierge[12881:70b] <Place: 0x1b27e850> /// (null)
2013-10-28 13:11:20.994 Trancierge[12881:70b] <Place: 0x1b27ea80> /// <GMSMarker: 0x1b27e970> (null) (-27.475651, 153.013364), <UIImage: 0x9e45680>
2013-10-28 13:11:20.995 Trancierge[12881:70b] <Place: 0x1b27ecb0> /// <GMSMarker: 0x1b27eba0> (null) (-27.477033, 153.013458), <UIImage: 0x9e45680>
2013-10-28 13:11:20.995 Trancierge[12881:70b] <Place: 0x1b27eee0> /// (null)
2013-10-28 13:11:20.995 Trancierge[12881:70b] <Place: 0x1b27f120> /// (null)
2013-10-28 13:11:20.995 Trancierge[12881:70b] <Place: 0x1b27f360> /// (null)
2013-10-28 13:11:20.995 Trancierge[12881:70b] <Place: 0x1b27f5a0> /// (null)