Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将Objective C扩展扩展扩展到swift类_Ios_Swift_Macos_Swift2 - Fatal编程技术网

Ios 将Objective C扩展扩展扩展到swift类

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中所做的那样。下面是一个例子

我想在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导入此文件