Ios 将Objective C扩展扩展扩展到swift类
我想在swift中扩展一个objective C类,它在不同的头文件中有一个扩展名+Protected。与往常一样,在一个.m文件中也实现了同样的功能 但我的问题是,如果我将这个类子类化,我就不能使用变量,也不能调用任何私有的方法。但是在Objective C中,如果我在.m文件中创建子类并导入相同的+Protected.h文件,我可以使用超类的私有变量和方法。有人能告诉我们怎么做吗?我指的是子类,在swift中使用它的私有方法和变量,就像我们在Objective C中所做的那样。下面是一个例子Ios 将Objective C扩展扩展扩展到swift类,ios,swift,macos,swift2,Ios,Swift,Macos,Swift2,我想在swift中扩展一个objective C类,它在不同的头文件中有一个扩展名+Protected。与往常一样,在一个.m文件中也实现了同样的功能 但我的问题是,如果我将这个类子类化,我就不能使用变量,也不能调用任何私有的方法。但是在Objective C中,如果我在.m文件中创建子类并导入相同的+Protected.h文件,我可以使用超类的私有变量和方法。有人能告诉我们怎么做吗?我指的是子类,在swift中使用它的私有方法和变量,就像我们在Objective C中所做的那样。下面是一个例子
@interface Parent : NSObject
@end
在单独的头文件中
@interface Parent()
@property NSInteger money;
-(void)spend;
@end
#import "Parent+Protected.h"
@implementation Parent
@end
为新类使用其他文件
@interface ObjCChild : Parent
@end
#import "Parent+Protected.h"
@implementation ObjCChild
-(void)spend {
self.money--;
}
@end
我在斯威夫特也试着这么做
class SwiftChild : Parent {
override func spend () {
self.money--
}
}
在这里,只有孩子才能花钱,而不是敏捷的孩子(即使它不会赚钱:)。有人能帮助swift child吗?我知道它的私人方法和变量。但是,有没有一种方法可以像我们在客观世界中所做的那样,让孩子们进入这个世界?你说什么是“孩子不能花钱”?向我们展示您是如何实际使用所发布的方法的。您是否尝试将#import“Parent+Protected.h”添加到桥接头文件中,以便将其暴露给Swift?是的,我尝试添加,但由于未找到头文件而出现。实际上,我正在使用pods从lib导入此文件