NSCollectionView에서 객체를 제거하는 코드가 있는데 하나의 항목 만 제거합니다. NSArray ("array")의 값은 2, 4를 반환하는 "2 4"입니다.하지만 코드를 실행하면 "4"가 아니라 "2"만 제거됩니다.NSArray에서 인덱스로 객체 제거
로그 :
NSString* LibraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPathSMSettings = [LibraryPath stringByAppendingString:stormarManagerSettingsPlistPath];
NSString *betasDef = [SMInAppCommunicationDEF stringByAppendingString:@"BETA App Id"];
NSString *indexOfApp = [Functions readDataFromPlist:plistPathSMSettings ForKey:betasDef];
if (!(indexOfApp == nil)) {
NSArray * array = [indexOfApp componentsSeparatedByString:@" "];
NSLog(@"Array: ", array);
int currentValue = 0;
for (int i = 0; i < [array count]; i++)
{
currentValue = [(NSNumber *)[array objectAtIndex:i] intValue];
NSLog(@"currentValue: %d", currentValue); // EXE_BAD_ACCESS
NSLog(@"x: %d", i);
[self.content removeObjectAtIndex:(currentValue)];
[self.collectionView setContent:self.content];
[self.collectionView reloadData];
NSLog(@"next: %d", currentValue); // EXE_BAD_ACCESS
}
}
else if (indexOfApp == nil) {
[self.collectionView setContent:self.content];
[self.collectionView reloadData];
}
'NSArray'는 불변, 그래서 당신은 아무것도를 제거 할 수 없습니다. – Droppy
나는 collectionview 콘텐트에서 삭제할 필요가 있음을 의미한다. NSMutableArray이다. 그러나 thats는 모두 씁니다. 이 코드가있는 것입니다. –
NSString을 NSNumber로 형 변환하고 있습니다. 매우, 매우 건강에 해 롭습니다. – gnasher729