草庐IT

Private_dirty

全部标签

swift - 如何在 Swift 中创建私有(private)函数?

这个问题在这里已经有了答案:DoesSwifthaveaccessmodifiers?(16个答案)关闭8年前。如何在Swift中创建私有(private)函数?这是一个例子:importUIKitclassAnotherClass{varsomeVar=1letsomeConst=2funcsomePrivateFunc()->Bool{returntrue}funcsomeFunc()->(Int->Bool){varsomeInnerFuncVar={(num:Int)->Boolinreturntrue}returnsomeInnerFuncVar}init(){varvc=V

ios - 如何在 Swift 框架中导入私有(private)框架头文件?

我有一个Objective-C框架(框架A),它公开了一些公共(public)header和一些私有(private)header。公共(public)header也在框架的伞形header中声明。我有第二个与Objective-C框架链接的Swift框架(框架B)。现在,如果我想在B中导入A的公共(public)header,我只需执行importA。但是我该如何导入私有(private)header呢?我知道桥接头不是一个选项,因为框架不支持它。我是否需要以某种方式为私有(private)header创建一个单独的伞形header? 最佳答案

ios - 如何在 Swift 框架中导入私有(private)框架头文件?

我有一个Objective-C框架(框架A),它公开了一些公共(public)header和一些私有(private)header。公共(public)header也在框架的伞形header中声明。我有第二个与Objective-C框架链接的Swift框架(框架B)。现在,如果我想在B中导入A的公共(public)header,我只需执行importA。但是我该如何导入私有(private)header呢?我知道桥接头不是一个选项,因为框架不支持它。我是否需要以某种方式为私有(private)header创建一个单独的伞形header? 最佳答案

unit-testing - 单元测试和私有(private)变量

我正在为公共(public)方法编写BDD单元测试。该方法更改了一个私有(private)属性(privatevar),所以我想编写一个expect()并确保它被正确设置。由于它是私有(private)的,我不知道如何从单元测试目标访问它。对于Objective-C,我只是添加一个扩展头文件。Swift中有类似的技巧吗?请注意,该属性还有一个带有一些代码的didSet()。 最佳答案 (请注意,Swift2添加了@testable属性,它可以使内部方法和属性可用于测试。有关更多信息,请参阅下面@JeremyP的评论。)没有。在Swi

unit-testing - 单元测试和私有(private)变量

我正在为公共(public)方法编写BDD单元测试。该方法更改了一个私有(private)属性(privatevar),所以我想编写一个expect()并确保它被正确设置。由于它是私有(private)的,我不知道如何从单元测试目标访问它。对于Objective-C,我只是添加一个扩展头文件。Swift中有类似的技巧吗?请注意,该属性还有一个带有一些代码的didSet()。 最佳答案 (请注意,Swift2添加了@testable属性,它可以使内部方法和属性可用于测试。有关更多信息,请参阅下面@JeremyP的评论。)没有。在Swi

Swift - 单元测试私有(private)变量和方法

我正在尝试测试一个类,但我对测试什么感到困惑。这是我要进行单元测试的类:classCalculatorBrain{privatevaraccumulator=0.0funcsetOperand(operand:Double){accumulator=operand}varresult:Double{returnaccumulator}privatevaroperations:Dictionary=["=":.Equals,"π":.Constant(M_PI),"e":.Constant(M_E),"±":.UnaryOperation({(op1:Double)->Doubleinr

Swift - 单元测试私有(private)变量和方法

我正在尝试测试一个类,但我对测试什么感到困惑。这是我要进行单元测试的类:classCalculatorBrain{privatevaraccumulator=0.0funcsetOperand(operand:Double){accumulator=operand}varresult:Double{returnaccumulator}privatevaroperations:Dictionary=["=":.Equals,"π":.Constant(M_PI),"e":.Constant(M_E),"±":.UnaryOperation({(op1:Double)->Doubleinr

c# - 为什么在接口(interface)列表中的泛型内部使用私有(private)嵌套类型不是 "inconsistent accessibility"?

如果标题不是完全不言自明的,下面是令我困惑的代码:publicinterfaceIFoo{}publicclassMyClass:IFoo{privateclassNestedInMyClass{}}我很惊讶这个编译没有错误。感觉我在暴露一个private类型。这不应该是违法的吗?也许您的答案只是“没有反对的规则,那为什么不可以呢?”也许同样令人惊讶的是MyClass.NestedInMyClass甚至在“范围内”。如果我删除MyClass.资格,它不会编译。(如果我将IFoo更改为通用类,它应该成为MyClass的基类,这是非法的,因为基类型必须是至少与类型本身一样易于访问。)我用V

c# - 为什么在接口(interface)列表中的泛型内部使用私有(private)嵌套类型不是 "inconsistent accessibility"?

如果标题不是完全不言自明的,下面是令我困惑的代码:publicinterfaceIFoo{}publicclassMyClass:IFoo{privateclassNestedInMyClass{}}我很惊讶这个编译没有错误。感觉我在暴露一个private类型。这不应该是违法的吗?也许您的答案只是“没有反对的规则,那为什么不可以呢?”也许同样令人惊讶的是MyClass.NestedInMyClass甚至在“范围内”。如果我删除MyClass.资格,它不会编译。(如果我将IFoo更改为通用类,它应该成为MyClass的基类,这是非法的,因为基类型必须是至少与类型本身一样易于访问。)我用V

c# - 向接口(interface)添加属性会阻止在派生类型中创建私有(private)/ protected "set"吗?

编辑:事实证明我遗漏了一些明显的东西,但我将保留这个问题以防其他人犯同样明显的错误。感谢那些指出它的人请参阅底部的解释。是否可以对覆盖接口(interface)属性的属性进行非公共(public)设置?也许我有一个愚蠢的时刻,但在我看来,在接口(interface)中定义一个属性隐含地要求没有派生类可以为所述属性提供任何非公共(public)集。例子:interfaceIField{boolIsValid{get;}}...并且由于接口(interface)属性可能没有可访问性修饰符意味着:classField:IField{publicoverrideboolIsValid{get;