草庐IT

fno-objc-arc

全部标签

performance - 如何使用 Instruments 或查看程序集确定 ARC 保留的对象?

这个问题不是要找出谁保留了特定的对象,而是要查看探查器中显示的一段代码是否有过多的保留/释放调用,并找出哪些对象是负责的。我有一个Swift应用程序,在初始移植后90%的时间都花在保留/发布代码上。经过大量重组以避免引用对象后,我将其降低到大约25%——但这个剩余部分很难归因。我可以看到它的给定block来自使用探查器的给定代码部分,但有时我看不到该代码中的任何内容(据我所知)应该导致保留/释放。我花时间查看了两种Instruments中的汇编代码(在工作时并排查看)以及otool-tvV的输出,有时保留/释放调用的接近度一个可识别的部分给我一个提示,告诉我发生了什么。我什至在一些地方

ios - 访问 ObjC 类中的参数化 swift 方法

swift类:@objcpublicclassXyzClass:NSObject{varnewlyVar=String()funcabcd(abc:String?,name:Int){}funcmymethod(userId:Int32?,startIndex:Int32?,lastIndex:Int32?,m_bankId:Int32?,m_DownPayment:Int32?,m_maxTenure:Int32?,m_salary:Int32?){}funcsampleMethod(userId:Int32,startIndex:Int32,lastIndex:Int32,m_ba

objective-c - 类名上的 @objc 注释与类本身

假设我有一个名为ExampleClass的类。假设我这样写代码:@objcclassExampleClass:NSObject{}像这样的ObjectiveC文件头:#import#import@interfaceRCT_EXTERN_MODULE(ExampleClass,NSObject)@end然后我在我的ReactNative应用程序中使用它,如下所示:console.log('exampleClass',React.NativeModules.ExampleClass);现在使用react-nativerun-ios编译会产生以下异常:❌Undefinedsymbolsfor

swift 火力基地 "_OBJC_CLASS_$_GPBDescriptor"错误

我手动导入firebase运行时出现以下错误:Undefinedsymbolsforarchitecturex86_64:"_OBJC_CLASS_$_GPBDescriptor",referencedfrom:objc-class-refinFirebaseMessaging(GtalkCore.pbobjc.o)objc-class-refinFirebaseMessaging(GtalkExtensions.pbobjc.o)"_OBJC_CLASS_$_GPBCodedOutputStream",referencedfrom:objc-class-refinFirebaseMe

objective-c - swift 1.2 : Implement optional property from Objc protocol

只是尝试开始使用Swift并在升级到Swift1.2时遇到以下问题:@protocolMyObjcProtocol@optional@property(copy)NSString*optionalString;-(void)optionalMethod;@end...classMySwiftClass:NSObject{}extensionMySwiftClass:MyObjcProtocol{varoptionalString:NSString{get{return"Foo"}set(newValue){NSLog("Whatever")}}//Noproblemherefuncop

objective-c - 移除 View 、ARC、与 Objective C 和 Swift 的差异

在ObjectiveC中,如果一个ViewController有一个UIKit对象属性,就说一个View,并在viewDidLoad中实例化,然后被添加到subview,为了将它从内存中移除,removeFromSuperview()和必须将对象设置为nil(如果我没记错的话,但我可能...)然而,在Swift中,只有可选类型的东西才能保存nil值。我的问题是,如果我想在我的应用程序中为UILabels或UIViews之类的东西设置动画,然后让它们消失(对用户和从内存中删除),那么让UIKit对象成为removeFromSuperView()就足够了吗?或者我是否必须让所有我试图设置动

ios - 将约束设置为以编程方式完成的 arc UIBezierPath

我正在开发一个自定义的圆形进度条,但我不知道如何将它置于所有设备的进度标签的同一中心。因为它是一个CAShapeLayer,所以我不能使用SnapKit也不能手动添加约束,至少我不能通过代码来做,它没有约束属性.如果我的Storyboard设置为iPhone8,这是iPhone8上的View:这是使用相同Storyboard设置在iPhoneX上的View:我的ViewController.swift:importUIKitclassViewController:UIViewController{lettrackLayer=CAShapeLayer()@IBOutletweakvarp

ios - 混合语言(ObjC+Swift)动态框架中的公共(public)swift类导入 "private"模块

我有一个动态框架MyFramwork.framework,它有Swift代码和ObjCheader,标记为protected(在MyFramwork.framework内部使用)和公共(public)(由App在外部使用)在框架的项目中。另外MyFramwork.framework是App中的嵌入式框架按照此处提到的步骤http://nsomar.com/project-and-private-headers-in-a-swift-and-objective-c-framework/,我创建了一个moduleMyFramwork_Private{header"../...h"...ex

ios - 标有@objc 的 Swift 类未添加到混合 Objective-C/Swift 框架中的 "-Swift.h" header

我正在尝试将旧的静态链接库转换为框架。在静态库中混合使用swift和objectivec,可以正确生成所有header。但是,切换到框架目标并添加标有@objcheader的swift文件时,该类不会添加到-Swift.hheader中。我可以导入header,但找不到swift类。这是在Xcode10.2中,并尝试同时使用Swift4.2和5。XCode中是否有任何特定设置会影响混合ObjectiveC/Swift框架目标中*-Swift.hheader的生成? 最佳答案 我遇到了类似的问题。就我而言,这是Xcode10.2中的一

Swift 类作为 objc 运行时的参数

当使用objc运行时进行Swift自省(introspection)时,我注意到以下是可能的:object_setClass(anObject,Birdy.classForCoder());...但不是object_setClass(anObject,Birdy);Birdy.classForCoder()和Birdy都是AnyClass的实例,那么为什么只有前者会传播到objc运行时? 最佳答案 使用Birdy.self获取AnyClass元类型。例子:object_setClass(anObject,Birdy.self)如果你