任何事情发生时,一切都暂时变为零

时间:2018-06-04 06:47:13

标签: ios objective-c nsurl

在我viewDidLoad()我称之为:

NSString *testString = @"https://test.com/?code=12345";
NSDictionary *testParams = [self parseRequest:testString];

只是为了查看parseRequest方法是否有效。这个方法被称为正常:

enter image description here

但是当我更进一步(即方法中的任何代码执行)时,一切都变为nil而我无法处理urlString

enter image description here

方法完成后,一切似乎都恢复正常(除了parseRequest()方法中没有任何代码有效)

我尝试过以下几点,但都没有效果:

  • 将方法内容移至viewDidLoad()(当我对nil采取行动时,所有内容仍为urlString
  • 使用网址而不是NSString
编辑:我把整个班级尽可能小地剥离了。这是最终结果:

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UILabel *failureLabel;
@property (weak, nonatomic) IBOutlet UIProgressView *loadingBar;

@end

@implementation ViewController 

- (void) viewDidLoad {
    [super viewDidLoad];

    NSString *testString = @"https://test.com/?code=12345";
    NSString *testParams = [self parseRequest:testString];
}

- (NSString *) parseRequest:(NSString *)urlString {
    NSLog(@"???");
    return @"";
}

@end

这几乎肯定与UIWebView有关......对吗? (我在界面构建器中创建webView,但即使我什么都不做,我仍然会遇到这个问题)

1 个答案:

答案 0 :(得分:0)

值已经存在,调试器可能没有显示变量的值,因为

  1. 调试时,当前配置的优化级别未设置为Noneenter image description here

  2. 您正在使用Release配置进行调试,默认情况下,优化最高(最快,最小),如上图所示。

  3. enter image description here

    只需NSLog变量urlString,即使LLDB将其显示为零,也应打印该值。