草庐IT

unowned-references

全部标签

swift - Swift 3 开发快照中的 POST 请求给出 "ambiguous reference to member ' dataTask(带有 :completionHandler:)'

我正在尝试在Swift3开发快照中发出POST请求,但由于某种原因,对NSURLSession.dataTask的调用失败,标题中出现错误。这是我使用的代码:importFoundationvarerr:NSError?varparams:Dictionaryvarurl:String="http://notreal.com"varrequest=NSMutableURLRequest(url:NSURL(string:url)!)varsession=NSURLSession.shared()request.httpMethod="POST"request.httpBody=tryN

swift - 内部闭包的捕获列表是否需要将 `self` 重新声明为 `weak` 或 `unowned`?

如果我有一个闭包传递给这样的函数:someFunctionWithTrailingClosure{[weakself]inanotherFunctionWithTrailingClosure{[weakself]inself?.doSomething()}}如果我在someFunctionWithTrailingClosure的捕获列表中将self声明为[weakself]而没有在捕获列表中再次将其重新声明为weakanotherFunctionWithTrailingClosureself已经变成了Optional类型,但它是否也变成了weak引用?谢谢!

closures - 为什么 [weak self] 有效但 [unowned self] 在 Swift 闭包中中断?

此SpriteKitAction通过使用完成闭包调用自身来重复。它使用闭包,而不是SKAction.repeatActionForever(),因为它需要在每次重复时生成一个随机变量:classTwinkler:SKSpriteNode{init(){super.init(texture:nil,color:UIColor.whiteColor(),size:CGSize(width:10.0,height:10.0))twinkle()}functwinkle(){letrand0to1=CGFloat(arc4random())/CGFloat(UINT32_MAX)letacti

swift - "Ambiguous reference to member map"尝试追加/替换数组元素时

几个SO帖子likethis处理相同的错误消息,但这些解决方案均无效。看起来这可能是误导性错误消息的情况。下面的代码会为映射调用生成“对成员映射的不明确引用”错误。有人知道为什么吗?funcsaveUser(user:User){varuserDicts=masterDict["users"]as![[String:AnyObject]]letnewDict=user.getDict()//Replacematchingelementwithletreplaced=falsemasterDict["users"]=userDicts.map{if($0["id"]asString!==

swift - Swift 中的 weak vs unowned。内部差异是什么?

我了解Swift中weak和unowned的用法和表面差异:我见过的最简单的例子是,如果有一个Dog和一个Bone,那么Bone可能有一个弱引用Dog(反之亦然),因为它们可以彼此独立存在。另一方面,对于Human和Heart,Heart可能有一个unownedcode>对人的引用,因为一旦Human变成...“取消引用”,就无法再合理地访问Heart。这与Customer和CreditCard的经典示例。因此,这不是关于此问题的重复问题。我的问题是,拥有两个如此相似的概念有什么意义?本质上99%相同的事物需要使用两个关键字的内部差异是什么?问题是为什么存在差异,而不是差异是什么。鉴于

memory-management - 'unowned(safe)' 和 'unowned(unsafe)' 之间的 Swift 有什么区别?

Apple的SwiftProgrammingLanguageGuide除了weak和之外,还提到了捕获说明符unowned(safe)和unowned(unsafe)无主。我(认为我)理解weak和unowned之间的区别;但是unowned(safe)和unowned(unsafe)有什么区别?指南没有说。请:不要依赖于简单地声明一个Objective-C等价物。 最佳答案 据我了解,虽然我无法从Apple找到明确的来源,但unowned可以分为两种类型,safe和unsafe.裸unowned是unowned(safe):它是一

pass-by-reference - Swift 是否有类似 "ref"的关键字强制参数通过引用传递?

在Swift中,结构和值类型默认按值传递,就像在C#中一样。但是C#也有一个非常有用的ref关键字,它强制通过引用传递参数,这样同一个实例就可以在函数内部更改,然后可以从调用者的范围访问。有没有办法在Swift中实现相同的结果? 最佳答案 对函数参数使用inout限定符。funcswapTwoInts(a:inoutInt,b:inoutInt){lettemporaryA=aa=bb=temporaryA}swapTwoInts(&someInt,&anotherInt)参见FunctionParametersandReturnV

c# - 获取错误 : String reference not set to an instance of a String. 参数名称:s

我正在使用此代码将数据库中的日期时间截断为其年份和时间部分。变量YearOfRelease和Runtime包含格式为“dd/MM/yyyyhh:mm:ss”的日期时间它以前工作正常但现在给出错误:未将字符串引用设置为字符串的实例。参数名称:s这可能只是DateTime.ParseExact函数中的问题,谁能告诉我为什么“null”在以前运行良好时突然导致此问题?DateTimedt2=newDateTime();dt=DateTime.ParseExact(YearOfRelease,"dd/MM/yyyyhh:mm:ss",null);Year=dt.Year.ToString();

c# - Visual Studio 项目 : How to include a reference for one configuration only?

环境:VS2008C#项目我需要构建我的应用程序以在2个不同的环境中使用。在其中一个环境中,我需要使用第3方DLL程序集。我可以使用#ifblock隔离使用此DLL的代码。但是我如何有条件地在CS项目文件中包含对DLL的引用?编辑:womp在他的评论中有一个很好的观点。我变成了separatequestion:如果引用的DLL从未被调用,是否会被加载?TIA, 最佳答案 卸载项目并将其作为.XML打开找到引用项标签并添加条件属性。例如:3.5注意最后一个引用现在有一个条件。 关于c#-V

c# - 如何为整个项目启用 C# 8.0 的 Nullable Reference Types 功能

根据C#8announcementvideo可以为整个项目启用“可空引用类型”功能。但是如何为项目启用它呢?我没有在VisualStudio2019Preview1的“项目属性”窗口中找到任何新的合适选项。如果C#语言版本更改为8.0,是否可以为“遗留”.csproj项目启用它? 最佳答案 在VisualStudio16.2(从预览版1开始)中,属性名称更改为Nullable,这更简单并且与命令行参数保持一致。将以下属性添加到您的.csproj文件。enable8.0如果您的目标是netcoreapp3.0或更高版本,则无需指定La