我正在检查文件是否已经存在,如果是,我正在警告用户是否要更换文件。我正在使用警报视图和代表。 然而,当我在用户选择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;
}
}
}
答案 0 :(得分:0)
[self AskFileSave];
将执行
- (void) AskFileSave
执行将返回:
//blnVal always NO for whatever reason ... ?
if(blnVal==NO)
tst=5;
//...
else {
tst=10;
//..
}
您应该将代码的那一部分移动到委托方法,您可以选择用户选择的内容,因为UIAlerView不会停止代码执行。
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
//override file exists
if([alertView tag]==10)
{
if(buttonIndex == 1)
{
blnVal=YES;
tst = 10;
}
else
{
blnVal=NO;
tst=5;
}
}
}
我希望它有所帮助!