У меня есть список массива пользовательских объектов. каждый объект содержит значение, которое мне нужно вывести, RequestNO, но это не уникальное значение, то есть, скажем, 5 объектов могут иметь одно и то же слово RequestNO.
что мне нужно сделать, это создать массив, который имеет только уникальные заявки. Мне нужно отобразить это в сборщике и не может быть повторяющихся претензий.
мой объект:
@interface ClaimCenterClaim : NSObject
{
NSNumber *claimID;
NSString *claimNO;
NSNumber *coid;
NSString *eventDates;
}
@property (nonatomic, retain) NSNumber *claimID;
@property (nonatomic, retain) NSString *claimNO;
@property (nonatomic, retain) NSNumber *coid;
@property (nonatomic, retain) NSString *eventDates;
@end
для меня это должно работать:
NSMutableDictionary *ClaimCenterClaimNOList = [[NSMutableDictionary alloc] init];
int count01 = [sortedClaimList count];
for (int i = 0; i < count01; i++)
{
claimCenterClaim = [sortedClaimList objectAtIndex:i];
if ([ClaimCenterClaimNOList objectForKey:claimCenterClaim.claimID] != claimCenterClaim.claimNO)
{
NSLog(@"entered the bloody loop");
[ClaimCenterClaimNOList setObject:claimCenterClaim.claimNO forKey:claimCenterClaim.claimID];
}
else
NSLog(@"did not add value");
}
но мое значение для "[ClaimCenterClaimNOList objectForKey: ClauiceClaim.claimID]" всегда равно нулю до оператора if.
если у меня есть значение requestID, могу ли я просто проверить, существует ли это значение ключа в словаре, а если нет, добавить его?
Я бы хотел избежать перебора словаря ClaimCenterClaimNOList (создает цикл в цикле). но я знаю ключ, я не могу просто посмотреть, существует ли этот ключ в словаре?
РЕДАКТИРОВАТЬ: неверная логика
мои значения requestID являются уникальными, поэтому я проверял свой словарь, если в него уже был добавлен requestID. так как requestID является уникальным, он не нашел соответствия. Я переключил поиск вокруг и теперь работает. вот правильный код:
int count01 = [sortedClaimList count];
for (int i = 0; i < count01; i++)
{
claimCenterClaim = [sortedClaimList objectAtIndex:i];
NSLog(@"lets see before: claimCenterClaim.claimiD: %@ the object: %@",claimCenterClaim.claimID, [ClaimCenterClaimNOList objectForKey:claimCenterClaim.claimID]);
if ([ClaimCenterClaimNOList objectForKey:claimCenterClaim.claimNO] == nil)
{
NSLog(@"not in the dictionary");
[ClaimCenterClaimNOList setObject:claimCenterClaim.claimID forKey:claimCenterClaim.claimNO];
}
else
{
NSLog(@"it works, it is in the dictionary");
}
}