我有一个目标 c 库,可以使用桥接头在 Swift 中使用。
我的一个公共方法被注释为返回nonnull
,但实际上在某些情况下它可以返回 nil。
我原以为调用此方法的 Swift 代码会崩溃,因为“解包 nil 可选值”,但实际上并没有。
目标-C:
- (nonnull UserService *)users
{
if (!_users && [self checkStarted]) {
_users = [[UserService alloc] init];
}
return _users;
}
-(BOOL) checkStarted
{
return NO;
}
斯威夫特标题:
生成标头如下所示:
func users() -> UserService
迅捷用法:
let userService = sdk.users()
当我po
返回值时,我得到了这个结果
po userService
<uninitialized>
怎么会?