リンクの配列から、現在のURLとホストが同一のものを、全て削除します。
この結果、空になった可変長配列が、可変長配列の中に点在することになるので、
それを削除する必要がある。このメソッドには含まれていません。
可変長配列を扱うポイントとしては、
可変長配列の要素数を、要素を削除する前の段階で定数にして、
その定数回のforループを作って、後ろから削除すること。
いないと思いますが、使う人がいたらどうぞ。
それにしても、我流なので力技が多いのをなんとかしたい。
- (void)escape
{
NSURL* here = [NSURL URLWithString:loc];
NSString* escapeHost = [here host];
int i,s;
for(i=0;i<[linkArray count];i++)
{
int lim=[[linkArray objectAtIndex:i] count];
for(s=1;s< lim+1;s++)
{
NSURL* there = [NSURL URLWithString:[[linkArray objectAtIndex:i] objectAtIndex:lim-s]];
NSString* tgtHost = [there host];
if([tgtHost isEqualToString:escapeHost]==YES)
{
[[linkArray objectAtIndex:i] removeObjectAtIndex:lim-s];
}
}
}
for(i=1;i<[linkArray count]+1;i++)
{
if([[linkArray objectAtIndex:[linkArray count]-i] count]==0)
{
[linkArray removeObjectAtIndex:[linkArray count]-i];
}
}
NSLog(@"%@",[linkArray description]);
}
by HIRA