ファイルが既に存在するかどうかを確認しています。存在する場合は、ファイルを置き換えたいかどうかをユーザーに警告しています。アラート ビューとデリゲートを使用しています。ただし、ユーザーがYESまたはNOを選択するまでにシミュレーターを使用して実行すると、プログラムはすでに実行されており、blnValには値がありませんが、ここで何が欠けているのかわかりません。
(ここでデータベースを検索しましたが、関連する特定の質問は見つかりませんでした)
-(void) chkFile2Save
{
short tst;
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* foofile = [documentsPath stringByAppendingPathComponent:pln2Save.text];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:foofile];
if(fileExists)
{
blnVal=NO;
[self AskFileSave];
}
//blnVal always NO for whatever reason ... ?
if(blnVal==NO)
tst=5;
//...
else {
tst=10;
//..
}
}
- (void) AskFileSave
{
UIAlertView *alertFileSave = [[UIAlertView alloc] initWithTitle:@"" message:@"File already exists. Override the file with current data?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
[alertFileSave setTag:10];
[alertFileSave show];
[alertFileSave release];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
//override file exists
if([alertView tag]==10)
{
if(buttonIndex == 1)
{
blnVal=YES;
}
else
{
blnVal=NO;
}
}
}