草庐IT

不符合

全部标签

ios - 类型 'string' 不符合协议(protocol) NilLiteralConvertible

在我的Swift代码中:overridefunctableView(tableView:UITableView,titleForHeaderInSectionsection:Int)->String?{letstringIdent=String(format:"section_1_%d",section)returnNSLocalizedString(stringIdent,comment:nil)}运行构建时显示错误:Type'string'doesnotconformtoprotocolNilLiteralConvertible此代码在Objective-C中始终有效。Swift有

ios - 从 NSDictionary 获取对象时类型 'String' 不符合协议(protocol) 'NSCopying' 错误

在Swift中尝试从NSDictionary中提取对象时出现错误:Type'String'doesnotconformtoprotocol'NSCopying'我尝试将key从String转换为NSString但我没有解决问题。任何人都可以阐明一下吗?这是代码:varexcerciseCategoryDictionary=objectasNSDictionaryletcategory=NSEntityDescription.insertNewObjectForEntityForName(NSStringFromClass(ExcerciseCategory.self),inManage

objective-c - 类型 'Boolean' 不符合协议(protocol) 'BooleanType'

在尝试根据Apple文档(和tutorial-ized)创建LaunchHelper时,我似乎遇到了由于将Objective-C代码移植到Swift中而引起的问题……谁的编译器不能再这样了在这种情况下是多余的。importServiceManagementletlaunchDaemon:CFStringRef="com.example.ApplicationLauncher"ifSMLoginItemSetEnabled(launchDaemon,true)//Errorappearshere{//...}错误似乎一直是:类型“Boolean”不符合协议(protocol)“Boole

swift - AnyObject 或 Any 上的类型约束(符合协议(protocol)的 AnyObject 或 Any)

我正在尝试将我的Objective-C代码转换为swift。在Objective-C中,我有以下协议(protocol):@protocolRWOverlaySelectionDelegate-(void)areaSelected:(UIView*)viewallPoints:(NSArray*)points;@end下面的类有一个引用协议(protocol)的weak属性(显然它被定义为weak以防止强引用循环)。@interfaceRWMapSelectionLayer:UIView@property(weak,nonatomic)iddelegate;@end现在是Swift的等

swift - 使用字典/数组初始化符合 Codable 的对象

我的主要用例是使用字典创建对象:例如structPerson:Codable{letname:String}letdictionary=["name":"Bob"]letperson=Person(from:dictionary)我想避免编写自定义实现并希望尽可能高效。 最佳答案 目前我拥有的最佳解决方案是这个,但它有编码/解码的开销。extensionDecodable{init(from:Any)throws{letdata=tryJSONSerialization.data(withJSONObject:from,option

Swift [1,2] 符合 AnyObject 但 [Enum.a, Enum.b] 不符合

我在AppDelegate中,试图传递对WatchKit扩展请求的回复。我不能使用枚举数组作为值类型为AnyObject的字典中的值。在Playground中进行的实验表明:enumE:Int{casea=0caseb}varx:AnyObject=[0,1]//OKvary:AnyObject=[E.a,E.b]//[E]isnotconvertibletoAnyObject当然,我可以通过将我的枚举转换为字符串或数字来解决这个问题,但为什么这是Swift中的类型错误? 最佳答案 AnyObject的存在是为了与Objective

generics - 符合两种协议(protocol)的 Swift 泛型类型

我在我的一个类中有一个泛型方法,我想要一个符合UIViewController和UIPickerViewDelegate的泛型类型。我怎样才能做到这一点?我想到了这样做:funcfoo(#viewController:T){}但是这段代码不能“识别”UIPickerViewDelegate。我还考虑过使用管道|而不是逗号,但这更糟糕,编译器不接受。是否可以这样做,或者我必须为类和协议(protocol)做2个参数?或者有更好的解决方法吗?感谢您的帮助,圣诞快乐:] 最佳答案 您的代码:funcfoo(#viewController:

swift - 检查 Swift 类是否符合协议(protocol)并实现可选功能?

我正在用Swift编写一个用于SpriteKit游戏的辅助函数,该函数将检查是否已正确设置碰撞延迟。我想检查我的GameScene是否实现了协议(protocol)SKPhysicsContactDeletegate并且还包含didBeginContact函数。我有以下代码,是在Xcode自动完成的帮助下编写的:ifGameScene(conformsToProtocol(SKPhysicsContactDelegate)){ifGameScene(respondsToSelector(didBeginContact(SKPhysicsContact))){print("Selfimp

swift - 试图符合 StringLiteralConvertible

我在尝试符合StringLiteralConvertible时遇到了一些奇怪的事情:classPerson:StringLiteralConvertible{varname=""init(namen:String){name=n}init(stringLiteralvalue:StringLiteralType){name=n}init(extendedGraphemeClusterLiteralvalue:ExtendedGraphemeClusterLiteralType){name=n}init(unicodeScalarLiteralvalue:UnicodeScalarLit

ios - 如何声明也符合协议(protocol)的特定类的属性?

假设我想创建一个属性,它是UIViewController的子类,并且还符合协议(protocol)MyDelegateProtocol。在Objective-C中我会这样写:@property(strong,nonatomic)UIViewController*delegate;但是,我不确定如何在Swift中编写它。我知道如何声明符合协议(protocol)的属性或特定类型的属性:letdelegate:MyDelegateProtocol?letdelegate:UIViewController?但我不太明白如何让它同时做到这两点。如果我尝试这样的事情:letdelegate:U