- (void)deletPersonFromName
{
printf("please enter name:");
char na[100]={0};
scanf("%s",na);
NSString*name = [NSString stringWithCString:na encoding:NSISOLatin1StringEncoding];
for (AddressPerson *per in _personbook) {
NSComparisonResult isequal=[[per getName] compare:name];
if (isequal==0 ) {
[_personbook removeObject:per];
// [_personbook removeObjectIdenticalTo:per];
NSLog(@"删除成功!!");
}
}
// for (int i = 0; i<[_personbook count]; i++) {
// NSComparisonResult isequal=[[_personbook[i] getName] compare:name];
// if (isequal==0) {
// [_personbook removeObject:_personbook[i]];
// i--;
// NSLog(@"删除成功!!");
// }
// }
[self runing];
}
{
printf("please enter name:");
char na[100]={0};
scanf("%s",na);
NSString*name = [NSString stringWithCString:na encoding:NSISOLatin1StringEncoding];
for (AddressPerson *per in _personbook) {
NSComparisonResult isequal=[[per getName] compare:name];
if (isequal==0 ) {
[_personbook removeObject:per];
// [_personbook removeObjectIdenticalTo:per];
NSLog(@"删除成功!!");
}
}
// for (int i = 0; i<[_personbook count]; i++) {
// NSComparisonResult isequal=[[_personbook[i] getName] compare:name];
// if (isequal==0) {
// [_personbook removeObject:_personbook[i]];
// i--;
// NSLog(@"删除成功!!");
// }
// }
[self runing];
}
forin循环不行的话,就用简单的for循环,而且当符合条件的时候,需要将 i - 1 ;
另外注意,用普通for循环时,如果第0个下标即满足时,需要将下标独立分出来一种情况,否则 i - 1 就会下标越界.