草庐IT

weakly-referenced

全部标签

swift XCTest : Verify proper deallocation of weak variables

最近我试图使用单元测试验证我编写的对象是否正确解除分配。然而,我发现无论我尝试什么,对象都不会在测试完成之前解除分配。因此,我将测试简化为一个简单的示例(见下文),它试图证明使用弱变量进行对象释放的基础知识。在我看来,强引用应该在测试方法退出后停止保留对象,而弱引用应该在下一个运行循环引用时为nil。但是,弱引用永远不会为nil,并且两个测试都失败了。我在这里误解了什么吗?以下是完整的单元测试。classMock{//classtype,shouldbehavewithreferencesemanticsinit(){}}classDeallocationTests:XCTestCas

ios - 处理URLSession时是否总是需要[Weak self]?

我不知道在这种情况下是否需要使用[weakself]?HTTPClient.swift:structHTTPClient{letsession=URLSession.sharedfuncget(url:URL,completion:@escaping(Data)->Void){session.dataTask(with:url){data,urlResponse,errorincompletion(data)//assumeeverythingwillgowell}.resume()}}服务.swiftstructService{lethttpClient:HTTPClientinit

swift - 如果我实际上没有在我的完成 block 中引用 self,我应该使用 [weak self] 吗?

当我有一个引用我的类对象属性的完成block时,我使用[weakself]。但是,有时我有一个不引用任何属性的完成block,但类对象可能会消失并取消初始化。我应该使用[weakself]吗?当我这样做时,它通常会发出警告Variable'self'waswrittento,butneverread...doSomeFunction(){[weakself]in//Noreferencestoselfhere} 最佳答案 捕获变量,只有当你在内部使用它时才会发生,默认情况下闭包永远不会捕获变量(不像Java内部类总是捕获this),

[CTF/网络安全] 攻防世界 weak_auth 解题详析

[CTF/网络安全]攻防世界weak_auth解题详析弱认证弱认证绕过方法姿势BurpSuite爆破总结题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。弱认证weak_auth翻译:弱认证这个术语通常用来描述一种较弱的安全认证方法或机制,它可能存在安全漏洞,易受到攻击或者被绕过。在信息安全领域中,弱认证是一种常见的安全威胁。例如,使用简单的密码或者未加密的通信协议可能会导致弱认证问题。由于弱认证的存在,黑客可以通过多种方式绕过认证,然后执行潜在的恶意行为,从而对系统和数据造成损害。弱认证绕过方法使用暴力破解攻击:使用暴力破解攻击来尝试多次猜测密码,直到找到正确的密码或者绕过认证。抓取认

ios - 内存管理 : retain cycle with weak var, 无主的非保留周期。为什么?

长话短说我有一个结构和一个类。该结构具有对该类实例的引用,并且该对象具有捕获该结构的闭包。如果对对象的引用是unowned,那么它们似乎都被取消了初始化。如果对对象的引用弱,它们会相互保留。为什么?我有一个可以相互引用的结构和一个类,我试图找出保留循环和打破它们的方法。所以我在playground上玩了一会儿。给定这段代码:structA{unownedvarb:Binit(b:B){self.b=b}funcsetup(){print("Asetup")b.didSomethingClosure={print("A:bdiddosomething")self.printSomethi

ios - 在 Swift 闭包中使用 [weak self] 和赋值

我一直在玩弄Swift并将AFNetworking集成到一个项目中,并且有一些我不是特别满意的代码。拥有alreadyposted在Apple开发论坛上没有得到回复,我想我会把它带到SO...我的类具有对AFHTTPSessionManager实例的强引用,以下代码段是调用GET(_,parameters,success,failure)时使用的闭包方法。letfailure={[weakself](task:NSURLSessionDataTask!,error:NSError!)->(Void)iniferror?.userInfo[AFNetworkingOperationFai

swift - Swift 中的 var 和 weak var 有什么区别

这个问题在这里已经有了答案:ExplanationofstrongandweakstorageiniOS5(6个答案)关闭7年前。Swift中的var和weakvar有什么区别?

ios - 闭包语法中的 Swift weak Self

我有这段代码来获取JSON:Alamofire.request(.GET,worlds).responseJSON{(request,response,JSON,error)inprintln(JSON)//weakSelf.serverList=JSON}如何在这里声明weakSelf?我知道在我的情况下它应该是无主的,但我找不到正确的语法。当我尝试使用[unownedself].serverList而不是注释行时,编译器显示错误“使用未解析的标识符‘unowned’”。我也试过像这样在block之前声明常量:unownedletuSelf=self它就像一个魅力,但我想了解如何在我

swift - 在异步网络请求中捕获 self weak 或 unowned

每当我执行异步网络请求时,可能是在请求到达时self已经为nil(例如,ViewController已经被关闭)。为了防止这种情况,我通常将自己描述为软弱的:future.onSuccess(context:Queue.main.context,callback:{[weakself]resultinifletstrongSelf=self{//Dosomestuffwithself,whichisnowguaranteedtobenotnil//strongSelf.someMethod()}})或者我可以将self捕捉为无主:future.onSuccess(context:Que

swift 。 unowned 相对于 weak 性能的(绝对)唯一特定优势是什么?

在Swift中,我们有正常的默认类型对象不能变成nil。我们有弱类型对象可以变成nil。如果对象变为nil,你的指针自动变为nil,所以你知道对象变为nil我们有无主打字对象可以变成nil。如果对象变成nil,那么你的指针什么也不会发生——如果你试图使用它,你就完蛋了(因此:推论:唯一一次你可以使用“unowned”的情况是你“绝对知道”该对象永远不会变为nil。)现在:在我看来,下面这句话,绝对是真的......我所说的绝对是指,真的,真的,绝对,深入到可能的最深层次的哲学问题真实...“unowned和weak之间的唯一区别是性能。由于unowned没有检查,所以速度更快。绝对没有