草庐IT

unsafe_guard

全部标签

objective-c - iOS 异常 EXC_GUARD

我在iPhone4上发生崩溃,异常类型为EXC_GUARD。我无法通过谷歌(只有1个结果)或stackoverflow找到有关此特定异常的任何信息。这是什么?Version:???(???)CodeType:ARM(Native)ParentProcess:launchd[1]Date/Time:2012-10-2414:29:53.740-0700OSVersion:iOS6.0(10A403)ReportVersion:104ExceptionType:EXC_GUARDExceptionCodes:0x0000000100000010,0x08fd4dbfade2deadCras

ios - 自动 ARC 转换后 : Assigning retained object to unsafe property; object will be released after assignment

我刚刚使用Xcode的自动重构将一个旧项目转换为ARC。@property(nonatomic,retain)NSMutableArray*cards;被替换为:@property(nonatomic)NSMutableArray*cards;这是有道理的,因为我读到的是“强”是默认状态。但是,以下行在标题中给我错误:self.cards=[[NSMutableArrayalloc]initWithCapacity:54];通过在原来保留的位置添加strong来解决错误:@property(nonatomic,strong)NSMutableArray*cards;但是...如果我需要

ios - guarded_open_np 的参数

我发现libsqlite3.dylib使用guarded_open_np函数打开数据库文件。我查看了sqlite3opensource,没有这样的东西。所以Apple肯定已经将其修改为使用guarded_open_np而不是unix的open。我知道guarded_open_np是一个私有(private)API,但我没有找到关于它的header和文档。我想在guarded_open_np上进行拦截(Cydia的MSFunctionHook),所以我还需要知道参数是什么,而不仅仅是函数名称。我使用IDAPro对libsqlite3.dylib进行了逆向工程,这就是它调用guarded_

swift - `guard let foo = foo` 什么时候合法的?

回到2016年11月,我发布了一个问题,询问为什么我不能使用guard创建一个使用与可选变量相同名称的变量的未包装版本,就像你可以使用iflet一样:链接:Whyisn'tguardletfoo=foovalid?当我写这个问题时,下面的代码将无法编译并出现“定义与先前值冲突”的错误://Testofusingguardtocreateanunwrappedversionofavar,likeifletfuncguardTest(_viewController:UIViewController?)->UIViewController?{//CheckifthecurrentviewCo

swift - 如果 Swift 'guard' 语句必须退出作用域,那么作用域的定义是什么?

我对代码块或“范围”的定义感到困惑。Apple的守卫文档是这样说的:守卫声明的elseblock......"musttransfercontroltoexitthecodeblockinwhichtheguardstatementappear."其他onlinesources假设guard语句必须退出它所在的“作用域”。所以采用下面的示例代码:functestGuardControlFlow(){letx=2lety=2funcembededFunc(){ify==2{guardx==1else{print("oops,numberisnot1")return}print("from

swift - 用 guard 检查 nil 而不是 if?

是否有一个guard相当于检查一个变量是否为nil?如果是这样,我如何将这样的语句翻译为使用guard?ifpost["preview"]!!=nil{//dostuff}else{//handlecasewherethevariableisnil} 最佳答案 就像有些人已经回答过的,你可以使用letguardletpreview=post["preview"]else{/*Handlenilcase*/return}如果不使用变量,可以使用下划线不声明变量,避免警告。guardlet_=post["preview"]else{/*

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):它是一

swift - 如何在 Swift 2.0 中使用 guard "strongify"optional self

有一个similarquestion关于如何weakify/strongifyself,已回答,但我想知道如何使用“self”而不会因iflet:WelcometoAppleSwiftversion2.0(700.0.59700.0.72).Type:helpforassistance.2>importFoundation3>classFoo{4.funcguardOptSelf()->()throws->Void{5.return{[weakself]in6.guardletself=selfelse{throwNSError(domain:"Iwasdestroyed!",code

swift - Swift 中 guard 语句中的多个条件

有没有办法在Swift的guard语句中包含多个条件?例如,如果我想使用guard检查两个可选值是否为nil,我应该如何使用单个guard语句来完成? 最佳答案 检查这段代码funcdemo(){varstr=[String:String]()str["status"]="blue"str["asd"]=nilguardletvar2=str["asd"],letvar1=str["status"]else{print("asdsfddffgdfgdfga")return}print("asdasdasd")}守卫会一一检查。如果第

c# - 为什么.Net 框架不使用 Guard 类(或等效类)作为方法参数

如果看一看.net框架代码的反编译源代码,大多数API都有这样的检查if(source==null)throwError.ArgumentNull("source");在方法参数上而不是使用更通用的类,比如Guard.IsNotNull(source);每次都进行这种显式检查背后是否有原因,或者这只是自框架开发以来一直存在的遗留代码,而较新的类正在朝着这个方向发展,或者进行显式检查是否有任何固有的优势?我能想到的一个原因可能是避免函数指针使堆栈过载。 最佳答案 添加到马修斯的回答:您建议的Guard.IsNotNull(source