草庐IT

objc_unretainedPointer

全部标签

ios - 如何同时使用带有可选和扩展的@objc 协议(protocol)?

这段代码无法编译,听起来可能很愚蠢,但我会解释为什么它如此重要!@objcprotocolp{optionalfuncf1()funcf2()}extensionp{funcf1(){}funcf2(){}}classfoo:p{}编译器说Typecdoesnotconformtoprotocol'p'这可能是因为你不能同时使用@objc可选和扩展(在这种情况下也没有意义).但请考虑以下示例:我想在我的扩展中的协议(protocol)中定义的非可选方法上设置一个选择器(我使用@objc的主要原因):funcf1(){}->funcf1(){...#selector(Self.f2)..

ios - @objc 协议(protocol)使 swift 编译器崩溃

我写了我的协议(protocol),它打算有一些@optional方法,但是swift编译器崩溃了。这有效:protocolSessionDelegate{//TODOtheseshouldallbeoptionalfuncwillOpenSession(session:Session);funcdidOpenSession(session:Session);funcdidFailOpenningSession(session:Session,error:NSError!);funcwillCloseSession(session:Session);funcdidCloseSessio

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

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)如果你

objective-c - objc_getClass : load swift class inheriting NSObject

我正在尝试使用objc运行时动态加载继承自NSObject的Swift类。(我试图从ObjC加载类,而不是从Swift加载类)我的Swift类:@objcpublicclassTestClass:NSObject{@objcpublicfunctestMethod()->String{return"String"}}根据Apple的文档,The@objcattributemakesyourSwiftAPIavailableinObjective-CandtheObjective-Cruntime但是objc_getClass("TestClass")的结果是(null)。我做错了什么吗