bFlag 肯定是YES,你不又重新赋值了吗static BOOL bFlag = NO;
bFlag = YES;
bFlag = YES;
解决方案 »
- AsyncSocket类中connecttohost调用问题
- 关于iOS udp 通信的问题
- [求助]UIScrollView GestureRecognizer处理问题
- IPad 怎么改变一个自定义窗体的透明度,让其逐渐显示出来?
- 搞iphone开发,感觉力不从心
- Ipad开发 如何在设置里配置应用程序(主要是弹出对话框形式配置)
- 去年毕业开始做IOS,空闲时间自己做了一款app,请各位大神给一些意见
- UIAlertView上怎么添加一个UIPickerView
- iOS中怎样确定一段label 所占的像素?
- 已经上传到app store的app,下载慢到下不下来,求教大咖们?
- swift怎么取得UIApplication的对象实例
- android开发和IOS开发的区别
不是 不是 当第二次 presentViewController 的时候 执行到 static BOOL bFlag = NO; 这一句的时候 就是YES ,bFlag=YES还没执行呢。
不是 不是 当第二次 presentViewController 的时候 执行到 static BOOL bFlag = NO; 这一句的时候 就是YES ,bFlag=YES还没执行呢。
不是 不是 当第二次 presentViewController 的时候 执行到 static BOOL bFlag = NO; 这一句的时候 就是YES ,bFlag=YES还没执行呢。
那你问题主要就是对static理解的问题了,你把static用在方法作用域里,它相当于就是一个静态的局部变量:
1.静态局部变量在程序开始执行的时候就始终存在,它的生命周期与整个程序一致。
2.静态局部变量的生命周期虽然为整个程序的生命周期,但是其作用域范围仍与自动临时变量相同。
不是 不是 当第二次 presentViewController 的时候 执行到 static BOOL bFlag = NO; 这一句的时候 就是YES ,bFlag=YES还没执行呢。
那你问题主要就是对static理解的问题了,你把static用在方法作用域里,它相当于就是一个静态的局部变量:
1.静态局部变量在程序开始执行的时候就始终存在,它的生命周期与整个程序一致。
2.静态局部变量的生命周期虽然为整个程序的生命周期,但是其作用域范围仍与自动临时变量相同。局部变量的作用于我知道
问题是
“代码片段一”
{
FirstViewController * vc = [[FirstViewController alloc]initWithNibName:nil bundle:nil];
[self presentViewController:vc animated:YES completion:^(void){
}];
vc = nil;
}
这个是第二次调用啊 也就是 第一次的vc 跟第二次的vc没有关系的吧?为什么在第二次的 FirstViewController被调用的时候,第一次FirstViewController里面的静态变量还有作用呢?
注意:是第二次调用 “代码片段一”
重新来过---------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. MainViewController
2. FirstViewController“代码片段一”
在MainViewController 里面
-(void)show
{
FirstViewController * vc = [[FirstViewController alloc]initWithNibName:nil bundle:nil];
[self presentViewController:vc animated:YES completion:^(void){
}];
vc = nil;
}代码片段二
在FirstViewController 里面
-(void)btnBack
{
static BOOL bFlag = NO; // 行数一
这里省略100行代码 bFlag = YES; [self dismissViewControllerAnimated:YES completion:nil];
}//
我的操作步骤是
show->btnBack
show->btnBack这里注意了 是两次啊 两次
然后第二次出发btnBack的时候 ,在"行数一"这里 bFlag 居然是YES疑问在哪里?以为在于,第二次show的时候 FirstViewController * vc 是重新申请过的啊,跟第一次的 FirstViewController * vc 根本就没关系啊,为什么bFlag会是上一次遗留下来的值呢?