草庐IT

LCD_write_chinese_string

全部标签

swift - 使用枚举的默认值作为字典键而不显式转换为 String

如果我声明一个enum像这样:enumKeys{casekey_onecasekey_two}我可以打印它,它会自动转换为String:print(Keys.key_one)//prints"key_one"如果我然后制作一个映射Strings的字典无论是什么(但为了简单起见,让我们再次选择Strings),我认为它应该能够通过使用Keys.key_one添加key作为关键,对吧?错了。varmyDict=[String:String]()///error:cannotsubscriptavalueoftype'[String:String]'withanindex///oftype'

swift - RealmSwift List 要求 String 继承自 Object

我正在尝试在RealmSwift上创建一个字符串列表,如下所示:importFoundationimportRealmSwift//V1classfoo:Object{letstrings=List()}但是我得到这个错误:'List'requiresthat'String'inheritfrom'Object'是否要在Realm中创建一个字符串列表而不创建具有一个字符串属性的整个类? 最佳答案 RealmSwift尚不支持原语数组。可以订阅GitHubissue1120在我们添加支持时收到通知。在那之前,您需要将字符串包装在派生自

ios - 无法将类型 'NSDate' 的值分配给类型 'String?' 的值

我正在自学Swift,我仍然很新,但我决定制作一个简单的应用程序,当您按下按钮时打印当前时间。viewcontroller文件中的代码如下:importUIKitclassViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()}@IBOutletweakvarLblTime:UILabel!@IBActionfuncBtnCalltime(sender:AnyObject){vartime=NSDate()varformatter=NSDateFormatter()formatter.d

string - 无法将类型 'Range<Int>' 的值转换为预期的参数类型 'Range<Index>'(又名 'Range<String.CharacterView.Index>')

我这里有一个字符串,我正在尝试对其进行子字符串化。letdesc="Helloworld.HelloWorld."varstringRange=1..但是Swift给我一个错误。我做错了什么?我正在使用stringRange的新表示法,因为它不允许我使用旧的。 最佳答案 您创建的Range类型不正确,它被推断为Int。您需要从字符串本身创建范围:letdesc="Helloworld.HelloWorld."letstringRange=desc.startIndex..String稍微复杂一些。或者,返回到NSString和NSR

swift - 如何将类型为 Class<Class Implementing Protocol> 的值存储在类型为 [String :Class<Protocol>] in Swift? 的字典中

我想在[String:SomeClass]类型的字典中存储一个更专业的类型。这是一些示例代码来说明我的问题(也可以在https://swiftlang.ng.bluemix.net/#/repl/579756cf9966ba6275fc794a上使用):classThing{}protocolFlavor{}classVanilla:Flavor{}vardict=[String:Thing]()dict["foo"]=Thing()它产生错误ERRORatline9,col28:cannotassignvalueoftype'Thing'totype'Thing?'.我试过转换Thi

Swift 2 到 3 迁移 String.fromCString

我正在尝试将此库(https://github.com/dankogai/swift-json)中的以下代码转换为Swift3兼容代码。关于fromCString函数存在大量错误,该函数以前在Swift2中的String上可用错误在任何地方都大致相同:'fromCString'isunavailable:PleaseuseString.init?(validatingUTF8:)instead.NotethatitnolongeracceptsNULLasavalidinput.AlsoconsiderusingString(cString:),thatwillattempttorep

swift - 如何在运行时将 StaticString 转换为 String?

在Swift3中,以下转换是否是从StaticString创建String的正确方法?letfileName:StaticString=#fileletcurrentFile:String=file.description 最佳答案 不,这不是严格将StaticString转换为String的正确方法;description返回的值是一个实现细节。获取String的最简单方法是不向fileName添加显式类型注释;因为它默认为String:letfileName=#fileprint(type(of:fileName))//Stri

C++ 编译错误std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >的两种解决办法

目录1,错误描述2,解决办法3,一种特殊情况1,错误描述C++程序编译阶段有个常见的错误,std::__cxx11::basic_***,可能是string,list等,也许程序在其他环境完成编译,在运行环境报错,也许是正在编译阶段报错。简单来说,这个错误的原因是因为C++不同版本对string、list的定义不同。比如Ubuntu环境,如果程序或依赖编译时版本和运行时gcc/g++版本不一致,就会报这个错误。2,解决办法通过升级或降级编译器版本,使编译环境和运行环境一致。把源码放到实际运行环境重新编译。在cpp文件使用宏_GLIBCXX_USE_CXX11_ABI=0,禁用C++11特性3,

ios - 无法将类型 'String.Type' 的值转换为预期的参数类型 'String!'

我正在使用用objective-c编写的库MDWamp,它具有以下类型的属性@property(nonatomic,strong)void(^deferredWampCRASigningBlock)(NSString*challange,void(^finishBLock)(NSString*signature));这是swift中的签名publicvardeferredWampCRASigningBlock:((String!,((String!)->Void)!)->Void)!当我尝试以下列方式快速实例化它时self.wamp?.config.deferredWampCRASig

ios - 类型 "Int -> Bool","Int-> Bool -> Int","Int-> String -> Int-> Bool"

有一个函数:func(first:Int)->Int->Bool->String{return?}返回值怎么写?我对上面func的返回类型感到很困惑。 最佳答案 当涉及到解析函数/闭包返回时,从右到左阅读。最右边最外面的是返回类型,你可以把剩下的放在括号里。因此,您的函数声明等同于func(first:Int)->((Int)->((Bool)->String))和func(first:Int)(_second:Int)(_third:Bool)->String尽管Swift3.0将不再支持这种形式(感谢@Andrea提醒)。这被称