小编And*_*win的帖子

(NSDictionary <NSString*,id>*__nonnull)是什么意思?

参数类型是(NSDictionary<NSString *,id> * __nonnull),它表示参数应该是字典,永远不能为空.那<NSString *, id>意味着什么?是'NSString*'和'id'协议名称?这是否意味着字典必须是json?但NSString总是对象.有人帮吗?

objective-c ios watchkit

1
推荐指数
1
解决办法
3155
查看次数

什么时候我应该在一个区块中使用弱自己,为什么在砌体中没有保留周期?

UIButton *testButton = [[UIButton alloc] init];
[self.view addSubview:testButton];
testButton.backgroundColor = [UIColor redColor];
[testButton mas_makeConstraints:^(MASConstraintMaker *make) {
    make.width.equalTo(@100);
    make.height.equalTo(@100);
    make.left.equalTo(self.view.mas_left);
    make.top.equalTo(self.view.mas_top);
}];
[testButton bk_addEventHandler:^(id sender) {
    [self dismissViewControllerAnimated:YES completion:nil];
} forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

我在代码中使用了BlocksKit和Masonry.如果使用I BlocksKit,bk_addEventHandler则有一个保留周期,我认为这是因为self保留self.view,保留testButton,保留self.但是,当我单独使用Mansonry时没有BlocksKit,并且我在Masonry中使用强自我mas_makeConstraints时,我发现没有保留周期,因为viewController可以调用dealloc方法.任何人都可以向我解释在砌体中没有保留周期吗?

objective-c ios objective-c-blocks masonry-ios-osx

1
推荐指数
1
解决办法
889
查看次数

如何制作一个boolean静态和__block?在iOS?

bool _hintExist;
- (void)showNotReachable
{
    if (_hintExist) {
        return;
    }

    NSLog(@"Show a hint");

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        _hintExist = NO;
    });
}
Run Code Online (Sandbox Code Playgroud)

上面的代码很好.有一个按钮可以触发该方法.实际上,我不需要_hintExist是一个全局变量.我想在方法中制作bool _hintExist.但是,当我尝试在bool _hintExist前添加static和__block时.会有编译错误.令我惊讶的是,如果我把它变成一个全局变量,我可以在块中更改_hintExist.有人能解释为什么吗?如果我在bool _notReachableHintExist之前添加静态,我的代码中的全局变量有什么区别?

objective-c static-variables objective-c-blocks

0
推荐指数
1
解决办法
493
查看次数