rand()%THOUGHT;

« 手を | main | 目の前の山 »

Aug 21, 2005 / 12:57 AM
escape

リンクの配列から、現在の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