NSMutableArray
에서 항목을 제거하는 데 문제가 있습니다. 나는 Objective-C에 매우 새로운 것이므로 나와 함께 견뎌주십시오.NSMutableArray에서 특정 개체 열거 및 제거
지금까지 다음과 같은 사항이 있습니다. 특정 텍스트가 내부에있는 경우 배열에서 선을 제거하려고합니다. 빨리 열거하는 동안이 작업을 수행 할 수 없으므로 열거가 완료된 후 제거를 위해 인덱스를 저장하려고합니다. 그러나, 이것은 캐스트없이 정수로부터 포인터를 만든다고 들었습니다. 혼란스러워!
//First remove any previous Offending entry.
//Read hostfile into array.
NSString *hostFileOriginalString = [[NSString alloc] initWithContentsOfFile:@"/etc/hosts"];
NSMutableArray *hostFileOriginalArray = [[hostFileOriginalString componentsSeparatedByString:@"\n"] mutableCopy];
NSInteger hostFileOffendingLocation;
//Use a for each loop to iterate through the array.
for (NSString *lineOfHosts in hostFileOriginalArray) {
if ([lineOfHosts rangeOfString:@"Offending"].location != NSNotFound) {
//Offending entry found, so remove it.
//[hostFileOriginalArray removeObject:lineOfHosts];
hostFileOffendingLocation = [hostFileOriginalArray indexOfObject:lineOfHosts];
//NSLog(@"%@", hostFileOffendingLocation);
}
}
//Release the Array.
[hostFileOriginalArray release];
//Remove offending entry from Array.
[hostFileOriginalArray removeObject:hostFileOffendingLocation];
이렇게하면 정수를'removeObject :'에 전달하기 때문에 캐스트가없는 정수에서 포인터를 만듭니다. 난'removeObjectAtIndex :'당신이 무엇을하고 있다고 생각합니다. 또한, 왜 개체를 제거하기 전에 배열을 릴리스 있습니까? – albertamg