gpt4 book ai didi

ios - 如何在 Swift 中调用 Objective-C instancetype 方法?

转载 作者:搜寻专家 更新时间:2023-10-31 21:58:22 25 4
gpt4 key购买 nike

我有一个如下所示的 Objective-C 类:

@interface CustomObjectHavingData : NSObject
@property (nonatomic, strong) NSData *objWithData;
- (instancetype)initWithObjHavingData;
@end

和这样的实现

@implementation CustomObjectHavingData
- (instancetype)initWithObjHavingData{
if (self = [super init]) {
NSString *str = @"This is simple string.";
self.objWithData = [str dataUsingEncoding:NSUTF8StringEncoding];
}
return self;
}
@end

现在我想在 Swift 中调用这个 initWithObjHavingData

var objData = CustomObjectHavingData()

这对我返回零。请帮助我如何在这里调用上面的 init 方法。

最佳答案

你不应该像在 Objective C 中那样编写初始化器。要么你应该只初始化它,要么如果你在构造函数中传递参数,那么你只能以其他方式命名它。

这是你可以做到的,

@interface CustomObjectHavingData : NSObject

@property (nonatomic, strong) NSData *objWithData;

- (instancetype)initWithObjHavingData:(NSData *)data;

@end


@implementation CustomObjectHavingData

- (instancetype)initWithObjHavingData:(NSData *)data
{
if (self = [super init]) {
_objWithData = data;
}

return self;
}

@end

在 Swift 中,你可以简单地这样调用它,

  let myCustomObject = CustomObjectHavingData(objHavingData: someData)

虽然这个名字很不合适。

关于ios - 如何在 Swift 中调用 Objective-C instancetype 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30459730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com