草庐IT

init-parameters

全部标签

Swift (4) - 泛型函数能否专门针对其 init() 生成 "empty"对象的类型?

是否可以将泛型函数限制为仅init()生成空对象的类型?例如:publicfuncconstructDefaultObject()->CwhereC:SomeProtocol{returnC()}没有where子句,这会产生错误:error:numbers.playground:3:12:error:non-nominaltype'C'doesnotsupportexplicitinitializationreturnC()^~~如果我改用C.init()会出现类似的错误:error:numbers.playground:3:12:error:type'C'hasnomember'in

xcode - 仅公开便利 init 的子类化类

我想继承声明如下的UITableViewRowAction类:classUITableViewRowAction:NSObject,NSCopying{convenienceinit(style:UITableViewRowActionStyle,title:String!,handler:(UITableViewRowAction!,NSIndexPath!)->Void)varstyle:UITableViewRowActionStyle{get}vartitle:String!@NSCopyingvarbackgroundColor:UIColor!//defaultbackgr

swift - 为什么我们需要指定 init 方法?

即使不指定init方法,以下代码块也能正常运行。如果是这样,init方法有什么用?structPerson{varname:Stringvarage:Intinit(name:String,age:Int){self.name=nameself.age=age}}letsomePerson=Person(name:"Sam",age:21)somePerson.namesomePerson.age感谢您的反馈。 最佳答案 正如本文档中指出的那样SwiftinitializersSwiftprovidesadefaultinitial

swift 4 : Simplifying constructor that just sets fields from parameters?

以下Swift4类从传递给构造函数的7个参数中设置7个字段。鉴于此构造函数的唯一工作是将这些参数中的每一个赋值给字段,有没有更简单的代码编写方法?似乎存在大量没有实际好处的重复。publicclassFactoryForListOfKnownApp{privateletreaderForVersion:ReaderForVersionprivateletfinderForNameOfApp:FinderForNameOfAppprivateletlistOfAppName:[AppName]privateletfactoryForVersionFromVersion:FactoryFo

ios - 是否可以在 init() 之外使用 JSONDecoder() 来更新对象的属性?

我正在使用Codable的jsondecode.decode([User].self,from:jsonDataRaw)创建NSManagedObjects但我的问题是decode.decode()每次都会创建一个新对象,但我需要一种方法来使用jsonData更新现有对象而不是创建新对象。有没有办法使用Codable做到这一点?classUser:NSManagedObject,Codable{requiredconvenienceinit(fromdecoder:Decoder)throws{guardletcontextUserInfoKey=CodingUserInfoKey.c

swift - 使用 Storyboard 和自定义 View Controller init

当以编程方式推送ViewController时,可以通过init方法轻松地进行一些依赖注入(inject):letdummyVC=DummyVC(dummyManager:DummyManager())self.pushViewController(dummyVC,animated:true)使用目标Controller:classDummyVC:UIViewController{privateletdummyManager:DummyManagerinit(dummyManager:DummyManager){self.dummyManager=dummyManagersuper.i

swift - 在 UIViewController 的 convenience init 中调用了什么初始化器?

我经常在UIViewController中使用convenienceinit来制作自定义初始化程序。但我不知道self.init()时调用的UIViewController的现有初始化器是什么。是不是publicinit(nibNamenibNameOrNil:String?,bundlenibBundleOrNil:Bundle?)?在UIViewController的convenienceinit中self.init()调用了什么?finalclassSampleViewController:UIViewController{privatevarcomponent:Componen

objective-c - Xcode 10.2 Swift 错误 : Function types cannot be represented in Objective-C unless their parameters and returns can be

我今天将Xcode更新到10.2,但出现以下错误:Methodcannotbemarked@objcbecausethetypeoftheparameter2cannotberepresentedinObjective-CFunctiontypescannotberepresentedinObjective-CunlesstheirparametersandreturnscanbeIdon'tunderstandwhy在10.1中完全没问题。这是我多年来一直使用的示例,没有任何问题。我怎样才能使这段代码无错误地编译?@objcpublicfuncmyFunction(inputStri

ios - 测试 rx 在 scheduler init 上抛出错误

如果我编写varscheduler=TestScheduler(initialClock:0),单元测试将终止我的进口importXCTestimportRxTest有错误信息failedtodemanglesuperclassofTestSchedulerfrommangledname'7RxSwift20VirtualTimeSchedulerCy0A4Test0fecD9ConverterVG'pod版本pod'RxBlocking','~>5'pod'RxTest','~>5' 最佳答案 这是Cocoapods+XCode1

ios - CFStringTransform 和 Swift 3 对 'init' 的使用不明确

尝试构建BonMot的示例项目时,lettheCFMutableString=NSMutableString(string:myString)asCFMutableStringCFStringTransform(theCFMutableString,UnsafeMutablePointer(nil),kCFStringTransformToUnicodeName,false)我在CFStringTransform行遇到这个错误Ambiguoususeof'init'Xcode8项目使用Swift3 最佳答案 在Swift2中,指针类