相关疑难解决方法(0)

我们能否确保`+(nonnull instancetype)sharedInstance的可空性;`?

这是一个如何优雅地规避课堂上的可空性的init问题NSObject.

所以这是一个经典的objective-c实现:

+ (instancetype)sharedInstance
{
    static dispatch_once_t onceToken;
    static id sharedInstance;
    dispatch_once(&onceToken, ^
    {
        sharedInstance = [[self alloc] init];
    });
    return sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)

但是现在我想声明它nonnull,如果可能的话:

+ (nonnull instancetype)sharedInstance;
Run Code Online (Sandbox Code Playgroud)

不幸的是,init返回一个nullable instancetype值.我应该NSAssert在打电话后添加一个什么东西init

我注意到有些人甚至将价值观记录nonnull在现实中nullable.那有意义吗?

我应该大胆地简单地添加到NS_ASSUME_NONNULL_BEGIN任何地方,而不是真正确保价值观nonnull吗?

nullable objective-c init non-nullable objective-c-nullability

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