草庐IT

objc_overrelease_during_dealloc_e

全部标签

objective-c - 如何在 Swift 中将 Objc-C NSUInteger[] = {0,1,2} 表示为 UnsafeMutablePointer<UInt>?

Objc-Cheader定义:-(int)printPDFAtPath:(NSString*)pdfPathpages:(NSUInteger[])indexeslength:(NSUInteger)lengthcopy:(int)nCopy;使用此函数的示例objc-C代码:NSUIntegerpageIndexes[]={0};printResult=[self.ptpprintPDFAtPath:selectedPDFFilePathpages:pageIndexeslength:lengthcopy:self.numberOfPaper];swift期望:funcprintPD

xcode - 删除 ObjC 版本后,无法将 IBOutlet 或 IBAction 连接到用 Swift 编写的 View Controller

我在XCode5中创建了一个项目并将其导入到XCode6beta中,后来我决定要用Swift重写其中一个ViewController。所以我首先删除了Controller文件(.h和.m)并在Swift文件扩展名中添加了名为controller的相同类。现在,当我尝试通过按住ctrl从小部件拖动到文件来连接Storyboard中的socket和Action时,我无法创建新连接。这是一个错误还是我需要做其他事情才能让它工作? 最佳答案 似乎是Xcode6中的错误。您可以通过将身份检查器中的ViewController自定义类更改为另一

ios - 定位服务 : 'Blue Bar' during 'Always' Mode

到目前为止,就我所看到/搜索和实现的而言。当用户授予“始终”使用位置服务时,不应出现蓝色远景。但是我的一位客户在他的iOS12手机上出现蓝条。谷歌地图应用程序也发生在他身上,但我无法在我的设备上复制它。蓝色条消息说:“Googlemap正在积极使用您的位置”请问有没有其他原因导致出现蓝条?弹出警报:根据Tawk先生和Roee先生的回答,我想知道如果将showsBackgroundLocationIndicator设置为true是否会显示蓝色条,然后弹出窗口alert也会显示给用户?说:“ABC应用正在后台访问您的位置。”如下所示,如此处所述:AboutprivacyandLocatio

objective-c - Throwing 方法不能是@objc 协议(protocol)的成员,因为它返回类型为 'Bool' 的值

我收到以下错误:Throwingmethodcannotbeamemberofan@objcprotocolbecauseitreturnsavalueoftype'Bool';return'Void'oratypethatbridgestoanObjective-Cclass定义Swift协议(protocol)时也需要桥接到Objective-C:@objcpublicprotocolSaving{funcsave()throws->Bool}是否有其他方法可以定义返回Bool的Swift方法,可能会抛出错误并与Objetive-C兼容? 最佳答案

swift XCTest : Verify proper deallocation of weak variables

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

objective-c - 如何从协议(protocol)方法描述列表中解密 "objc_method_description"?

我有一些Swift3代码来解码iOSObjective-C协议(protocol)(它有一个Swift对应协议(protocol))。在断定Swift3反射还不足以完成我需要的功能后,我偶然发现了objc运行时方法protocol_copyMethodDescriptionList(),它返回以下C结构的数组:structobjc_method_descriptionSELname;char*types;};代码获取协议(protocol)选择器名称列表,但不确定type字段中返回的是什么。我对如何正确解码objc_method_description.type值感到困惑。我在type

swift - 以编程方式创建 UIButton 事件时,@objc 和 IBAction 之间有什么区别吗?

当从Storyboard中的UIButton创建事件处理程序时,Swift在func之前添加了@IBAction。当以编程方式将事件添加到UIButton到func时,Swift报错并说我需要在我的方法前面添加@objc,但是当我添加@IBAction时,它也会编译。将事件添加到我的UIButton以编程方式时,两者之间有区别吗?我应该使用哪个? 最佳答案 IBAction前缀已经将方法公开给Objective-C运行时,因此无需再为它添加前缀@objc。由于IB代表InterfaceBuilder,因此在以编程方式创建按钮时没有必

objective-c - 以协议(protocol)为参数的 ObjC 泛型集合被翻译为 [AnyObject]

为什么protocols属性在swift中被翻译成[AnyObject],而不是[P]@protocolP;@classC;@interfaceTestGenerics:NSObject@propertyNSArray*classes;@propertyNSArray*protocols;@end在Swift中它看起来是这样的:publicclassTestGenerics:NSObject{publicvarclasses:[C]publicvarprotocols:[AnyObject]}更新:找到解决方案@propertyNSArray*>*protocols;或者喜欢建议的ne

ios - 带有 Objective-C 选择器 'dealloc()' 的方法 'dealloc' 与带有相同 Objective-C 选择器的隐式析构器冲突

我正在设置AMScrollingNavbar在swift。当我尝试转换时-(void)dealloc{[selfstopFollowingScrollView];}到funcdealloc(){self.stopFollowingScrollView()}出现问题中描述的错误。能告诉我这是什么原因吗?如何处理? 最佳答案 在swift中,您需要将dealloc重命名为deinit,如下所示:deinit{self.stopFollowingScrollView()} 关于ios-带有Ob

ios - 如何快速将 void block 传递给 objc_setAssociatedObject

我正在尝试通过扩展向UIView添加点击手势支持。这使用Objective-C非常简单,但是当我尝试在运行时属性上设置void返回block时出现以下错误。error:type'()->Void'doesnotconformtoprotocol'AnyObject'这是计算属性:vartapAction:(()->Void)?{get{objc_getAssociatedObject(self,&AssociatedKeys.SNGLSActionHandlerTapBlockKey)}set{objc_setAssociatedObject(self,&AssociatedKeys.