草庐IT

returning

全部标签

swift - 索引(: Int) method of Range in swift return incorrect value

在半开放范围对象上使用index(of:Int)方法时,如果范围不是从0开始,它总是返回不正确的值。请参见下面的代码。letrange=(3..我不明白为什么会产生这样的结果。谁能解释一下? 最佳答案 索引是不透明的对象。如果它不是数组,则不应假定它们是从零开始的,甚至不应假定它们是整数(有关示例,请参见String.Index)。要获取从零开始的整数索引,您需要获取与startIndex的距离:letrange=(3..但是,对于Int范围,它基本上与以下内容相同:letintegerIndex=5-range.lowerOffs

swift - 为什么 Swift 闭包语法在隐式参数时不接受 return 的使用?

Swift的语言设计背后的原因是什么可以接受以下内容[1,2,3,4].map({(number:Int)->Intinreturnnumber*3})//ok或[1,2,3,4].map({numberinnumber*3})//ok或[1,2,3,4].map({3*$0})//ok同时让这NotAcceptable?[1,2,3,4].map({return3*$0})//notok 最佳答案 这显然是一个编译器错误,因为将闭包移动到一个单独的变量就可以了:letclosure1:(Int)->(Int)={return3*$

swift 错误 : 'missing return in function' ?

我正在创建一个井字游戏,我遇到了这个我不太理解的错误:“预期返回‘(location:String,pattern:String)’的函数中缺少返回值”。它在这个应该返回“algorResults”的代码块上绘制错误,它应该给出在第一行初始化的位置和模式(两个字符串)。出了什么问题?请详细解释建议,谢谢!我的代码://FunctionthatimplementspartofAIthatseeswhereagoodplacetoplayis:funcrowcheck(value:Int)->(location:String,pattern:String)?{vargoodFinds=["

syntax - 这在 Swift 中叫做 "var count:Int { return items.count }"是什么?

我在Swift的苹果文档中看到了这段代码:varcount:Int{returnitems.count}我认为这可能是一个闭包。我认为不是的原因是因为它没有等号。所以它没有将该变量分配给任何东西。如果它不是闭包那么它是什么? 最佳答案 这是一个只读计算属性。来自documentation:Acomputedpropertywithagetterbutnosetterisknownasaread-onlycomputedproperty.Aread-onlycomputedpropertyalwaysreturnsavalue,and

ios - 快照 View (屏幕更新后 : true) returns an empty view

我想为导航Controller实现自定义推送转换。我首先实现了UINavigationControllerDelegate,我在其中返回了一个UIViewControllerAnimatedTransitioning的对象。在这门课中,我想拍摄目标View的快照,以便为其设置动画。但是,对于推送序列,这不起作用-快照是空的。[当我弹出时,我设置了afterScreenUpdates=false并且一切正常]guardletfromVC=transitionContext.viewController(forKey:UITransitionContextViewControllerKey

swift - 为什么 map (_ :) in Swift Playground return a String and not a tuple?

我正在尝试使用SwiftPlayground来使用map(_:)和enumerated()遍历一组订单,将第一个完美匹配返回给客户goods。但是,在SwiftPlayground中测试时;map(_:)函数返回一个字符串,但它应该是一个元组。我正在尝试检索索引和值;给定数组过滤器的。目前,我目前的解决方案是这样的;letorders=[4,2,7]letgoods=2varmatching:Int=(orders.filter{$0==goods}.first)??0asInt在这个例子中,答案是2;但是它没有给我数组的索引。我在SwiftPlayground的第二次尝试是这样var

objective-c - CF_RETURNS_RETAINED 或 CF_RETURNS_NOT_RETAINED : which to use when?

我不确定对于返回CFDataProviderRef的自定义函数是使用CF_RETURNS_RETAINED还是CF_RETURNS_NOT_RETAINED。根据thedocumentationatthelocationwherethemacrosaredefined,两者都应该只在特殊情况下使用,正确的修复应该是修复我的命名约定。但是swift/objective-c文档suggestsusing它们注释任何返回CoreFoundation指针的函数,而没有真正解释何时使用哪个---如果我不注释它们,我需要每次在swift代码中手动指定行为。我能找到的更多文档解释了如何使用+1的AR

swift 3 : Converting Data to String returns a nil value

将数据转换为字符串返回nil值。代码://thusunwrapstheimageifletimage=image{print("Savingimagedata")//don'tunwraphereifletdata=UIImagePNGRepresentation(image){letstr=String(data:data,encoding:.utf8)print(str)}}我不知道原因。另外,如何将字符串转换回数据? 最佳答案 这不起作用,因为当您将图像的字节解释为字符串时,该字符串无效。并非每个困惑的数据都是有效的utf8字

swift - NSCopying 副本(带有 :) - Does it really need to return Any?

有没有什么方法可以使用NSCopying而返回的对象不是Any类型?它总是迫使我施法。这似乎很奇怪。我正在复制对象,Swift难道不应该根据copy这个词的定义知道它是同一类型吗?是否有另一种方法来复制我不知道的对象,或者是否有一些我缺少的“陷阱”需要这个。这个类很简单,比如:classPerson{varname:Stringvarage:Int}它必须是一个类,因为我需要继承。例子:varjohn=Person(name:"John",age:30)varjohnsClone=john.copy()as!Person我想我可以创建一个接受现有对象的初始化程序,但这在语义上似乎不如“

Swift 协议(protocol)函数 : returning the same type of conforming class

我想知道是否可以在Swift中完成类似java(或c++)的事情:我有一个协议(protocol):protocolProt1{funcreturnMyself()->Prot1}并且一个类符合协议(protocol)Prot1。我可以强制函数returnMyself()的返回类型与下面的类的类型相同吗?classMyClass:Prot1{publicfuncreturnMyself()->MyClass{returnself}}这可能吗? 最佳答案 只需在协议(protocol)中使用SelfprotocolProt1{func