ブリッジング ヘッダーを使用して Swift で使用できる目的の C ライブラリがあります。
私のパブリック メソッドの 1 つは、返すと注釈が付けられて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>
どうして?