草庐IT

any_option

全部标签

ios - 条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 'NSManagedObjectContext

我收到此错误消息:“条件绑定(bind)的初始化程序必须具有可选类型,而不是‘NSManagedObjectContext’。我不确定如何修复此错误。我认为错误在于“iflet”。ifletmanagedObjectContext=(UIApplication.sharedApplication().delegateas!AppDelegate).managedObjectContext{restaurant=NSEntityDescription.insertNewObjectForEntityForName("Restaurant",inManagedObjectContext:m

Array<Any> 上的 Swift 模式匹配

swift1.2我正在尝试在一个以Any类型作为参数的函数中的switch案例中进行模式匹配,以便分派(dispatch)给一个更专业的私有(private)init。这是一个Playground推断:importFoundationstructmyStruct{}funcswitchOnAny(any:Any)->String{println("DynamicType==\(any.dynamicType)")switchany{caseletarrayas[Any]:return"Array"caseletarrayasNSArray:return"NSArray"default:

ios - 设置可选文本时,UIlabel 文本不显示 "optional"字?

我一直在使用可选的很多。我已经将一个字符串变量声明为可选的varstr:String?现在我在这个变量中设置一些值作为str="hello"。现在如果我打印这个可选的而不展开然后它打印为Optional("hello")但是如果我将标签上的文本设置为self.label.text=str那么它只会将值显示为hello请解释为什么它不显示标签上的文字Optional("hello") 最佳答案 UILabel的text属性是可选的。UILabel足够智能,可以检查text属性的值是否设置为nil或非nil值。如果它不是nil,那么它会

swift - 如何在 Swift 3 中将 Any 转换为 CGFloat

我需要Any到CGFloat。但是,我遇到了一个fatalerror。为什么不能将Any分配给CGFloat?如何转换?letlx=ixas!CGFloat错误信息:Thread1:EXC_BAD_INSTRUCTION(code=EXC_l386_INVOP,subcode=0x0)0x1040dcbf1:movsd-0xc0(%rbp),%xmm0;xmm0=mem[0],zero打印日志:CGFloat:-0.5CGFloat:-0.5代码:importFoundationimportUIKit//creationofblocksclassBlock{varblockRect=[

Swift 在可空性可用之前使用 Implicitly Unwrapped Optional

在Apple关于可空性的博客中,他们提到了这一点:"...inSwiftthere’sastrongdistinctionbetweenoptionalandnon-optionalreferences,e.g.NSViewvs.NSView?,whileObjective-CrepresentsbothsofthesetwotypesasNSView*.BecausetheSwiftcompilercan’tbesurewhetheraparticularNSView*isoptionalornot,thetypeisbroughtintoSwiftasanimplicitlyunw

ios - Swift 通用变量 fatal error : unexpectedly found nil while unwrapping an Optional value

我正在尝试实现一个简单的通用方法:funcfindMax(numbers_array:[T])->(min_tuple:T,max_tuple:T){varmax_number:T?varmin_number:T?foriinnumbers_array{if(max_numberi){min_number=i}}return(min_number!,max_number!)}我正在尝试访问这样的方法:letresult=findMax([3.4,5,-7,-7.8])但是每当我运行这段代码时,我都会收到以下错误:fatalerror:unexpectedlyfoundnilwhileu

Swift:设置单元格文本标签时无法摆脱 "Optional"

我花了相当多的时间试图解决这个问题,但我并不高兴。我在我的appDelegate中创建了一个数组(levelArrayName),它由一个sqlite数据库填充:classAppDelegate:UIResponder,UIApplicationDelegate{varwindow:UIWindow?vardatabase:COpaquePointer=nilvarlevelArray:[[Int]]=[]varlevelArrayName:[[String]]=[]funccheckdatabase(){//checkisdatabaseexistatpath.....vardirP

json - Swift3 JSONSerialization with [String :Any] rather than NSDictionary

假设你有一个json字符串someText并且你想将它解析为字典。以前我做过这个......letjsonResult:NSDictionary=tryJSONSerialization.jsonObject(with:someText.data(using:.utf8)!,options:JSONSerialization.ReadingOptions.mutableContainers)as!NSDictionary但这只是一个蹩脚的NSDictionary。看来你确实可以做到这一点......letjsonResult:[String:Any]=tryJSONSerializat

ios - 类型 'Any?' 没有下标成员

这个问题在这里已经有了答案:Type'Any'hasnosubscriptmembers(firebase)(2个答案)关闭5年前。我正在尝试在我的应用程序中登录fb后检索电子邮件ID。但是,当我尝试从结果中获取值时出现错误。错误是:键入“Any?”没有下标成员。funcfetchProfile(){print("FetchProfile")letparameters=["fields":"email,first_name,last_name,picture.type(large)"]FBSDKGraphRequest(graphPath:"me",parameters:paramet

arrays - 展平 [Any] 数组 Swift

使用this堆栈溢出问题我有以下代码。letnumbers=[1,[2,3]]as[Any]varflattened=numbers.flatMap{$0}print(flattened)//[1,[2,3]]我不想将flattened设置为[1,[2,3]][1,2,3]。在Swift中实现这一目标的最简单/最干净的方法是什么? 最佳答案 可能有更好的方法来解决这个问题,但一个解决方案是编写您自己的数组扩展:extensionArray{funcanyFlatten()->[Any]{varres=[Any]()forvalins