私がuoに付属しているものよりも、単純な文字列操作を行う簡単な方法が必要です。ユーザーがディレクトリ内のファイルを複製できるようにする方法があります。テーブルビューでそれを選択してクローンボタンを押すと、ファイルのコピーが保存され、fileNameにサブストリングCopyが追加されます。コピーがすでに存在する場合は、ファイル名を繰り返し、ループの繰り返しによってファイル名を追加する必要があります。例えば;
<filename> Copy 1
<filename> Copy 2
until my other method return that the name is unique.
渡されたファイル名を3つの基準で調べる必要があります。すでに「コピー」が追加されていますか?すでに文字列番号が追加されていますか?その場合、番号の値を1つずつ繰り返して、元に戻します。
かなりの時間の後、私はこれを思い付くことができました:
//Tokenize the string
NSArray *filenameArray =[copyName componentsSeparatedByString:@" "];
//Make sure the name is unique
//Update the namesArray
[self montageNameList];
int i = 1;
for(NSString * name in self.montageNames){
if([channelSetManager_ checkNoDuplicateName:self.montageNames forThisName:copyName]== YES){
break;
}else{
if([[filenameArray lastObject]isEqualToString:@"Copy"]){
//Just add a number to the end of the string
copyName = [copyName stringByAppendingFormat:@" %d", i];
}else if(([[filenameArray lastObject]intValue] > -1) && ([[filenameArray lastObject]intValue] < 100)){
i = [[filenameArray lastObject]intValue]+1;
NSInteger len = [[filenameArray lastObject]length]+1;
copyName = [copyName substringToIndex:[copyName length] - len ];
copyName = [copyName stringByAppendingFormat:@" %d",i];
}
}
}
これは機能しますが、正しい方法ではないようです。アドバイスをいただければ幸いです。