我正在尝试使此代码起作用:
class MyWindowController: NSWindowController
{
let thing: Thing
convenience init(thing: Thing)
{
self.thing = thing
super.init(windowNibName: NSNib.Name(rawValue: "MyNib"))
}
}
当然,问题在于,便利初始化程序无法从超类调用init
。那么,如何初始化thing
并仍然可以调用init(windowNibName:)
(本身就是一个便捷的初始化程序)呢?我宁愿不必重新实现自己加载的笔尖,但是如果我只能使用指定的初始化程序,该如何避免呢?
答案 0 :(得分:4)
根据Function SumCounts(sht As String, dest As String, addr As String, divi As String)
Workbooks("MASTER").Sheets("XXX").Range(dest).Value = _
(Application.CountIf(Workbooks("BBB").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("CCC").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("DDD").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("EEE").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("FFF").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("GGG").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("HHH").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("III").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("JJJ").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("KKK").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("LLL").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("MMM").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("NNN").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("OOO").Worksheets(sht).Range(addr), ">0") + _
Application.CountIf(Workbooks("PPP").Worksheets(sht).Range(addr), ">0")) / _
Workbooks("MASTER").Sheets("XXX").Range(divi).Value
End Function
文档:
您还可以实现一个
typedef struct { int x1,y1,x2,y2; int (*division_mode_x)(int i,int x1,int x2,SpriteGrid grid); int (*division_mode_y)(int i,int y1,int y2); }SpriteGrid;
子类,以避免在实例化窗口控制器时要求客户端代码获取相应的笔尖文件名并将其传递给NSWindowController
或NSWindowController
。最好的方法是重写init(windowNibName:)
以返回笔尖的文件名,并通过将init(windowNibName:owner:)
传递给windowNibName
来实例化窗口控制器。使用init(window :)指定的初始值设定项可简化对Swift初始值设定项的要求。
您可以通过以下方式实现您的课程:
nil