Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对Swift隐藏Objective-C初始值设定项(或方法)_Objective C_Swift_Initialization - Fatal编程技术网

对Swift隐藏Objective-C初始值设定项(或方法)

对Swift隐藏Objective-C初始值设定项(或方法),objective-c,swift,initialization,Objective C,Swift,Initialization,我有一个框架,有一个Objective-C类和一个指定的初始值设定项,它接受两个NSArray。在这个框架中,我定义了一个Swift扩展,它提供了一个额外的初始值设定项,它接受一个元组数组而不是两个数组 永久导入框架时,是否可以对Swift隐藏原始的Objective-C初始值设定项,以便仅使用采用元组数组的初始值设定项,但在使用Objective-C代码框架时保持其可用性?您可以: 你的应用程序带来了标题 #define __BRIDGING__ #import "YourObjCObject

我有一个框架,有一个Objective-C类和一个指定的初始值设定项,它接受两个NSArray。在这个框架中,我定义了一个Swift扩展,它提供了一个额外的初始值设定项,它接受一个元组数组而不是两个数组

永久导入框架时,是否可以对Swift隐藏原始的Objective-C初始值设定项,以便仅使用采用元组数组的初始值设定项,但在使用Objective-C代码框架时保持其可用性?

您可以:

你的应用程序带来了标题

#define __BRIDGING__
#import "YourObjCObject.h"
#undef __BRIDGING__
YourObjCObject.h

#import <Foundation/Foundation.h>

@interface YourObjCObject : NSObject

@property (assign, nonatomic) NSInteger count;

- (instancetype)initWithArray:(NSArray *)ary1 Array2:(NSArray *)ary2 NS_DESIGNATED_INITIALIZER
#ifdef __BRIDGING__
NS_UNAVAILABLE
#endif
;
@end
你可以:

你的应用程序带来了标题

#define __BRIDGING__
#import "YourObjCObject.h"
#undef __BRIDGING__
YourObjCObject.h

#import <Foundation/Foundation.h>

@interface YourObjCObject : NSObject

@property (assign, nonatomic) NSInteger count;

- (instancetype)initWithArray:(NSArray *)ary1 Array2:(NSArray *)ary2 NS_DESIGNATED_INITIALIZER
#ifdef __BRIDGING__
NS_UNAVAILABLE
#endif
;
@end
@mattt的答复:

使用仅在Xcode 7及以上版本上可用的NS_SWIFT_UNAVAILABLE宏

@mattt的答复:

使用仅在Xcode 7及以上版本上可用的NS_SWIFT_UNAVAILABLE宏


顺便说一句,如果您对Swift隐藏指定的初始值设定项,那么如何在Swift扩展中实现便利初始值设定项?是的,这是我的部分问题。我想在我自己的便利初始化器上使用它,但我想把它隐藏在别处。如果不可能,我可以重新实现Swift中指定的初始值设定项。另外,还有一个问题,这是在一个框架内,该框架没有如上所述的桥接头。我所要求的行为是否可以为框架的用户实现?或者换句话说,是否可以从预处理器宏中检测Swift的使用情况,而无需像在您的解决方案中那样手动定义?因此,此QA可能会对您有所帮助。谢谢,这很有希望!然而,我仍然看不到一种从框架之外实现我想要的方法:让Obj-C的初始值设定项可以从Obj-C获得,但是只有Swift的初始值设定项可以从Swift获得。我已更新问题以反映这一点。我会阅读,看看是否能找到合适的。顺便说一句,如果你对Swift隐藏指定的初始值设定项,你如何在Swift扩展中实现便利初始化器?是的,这是我问题的一部分。我想在我自己的便利初始化器上使用它,但我想把它隐藏在别处。如果不可能,我可以重新实现Swift中指定的初始值设定项。另外,还有一个问题,这是在一个框架内,该框架没有如上所述的桥接头。我所要求的行为是否可以为框架的用户实现?或者换句话说,是否可以从预处理器宏中检测Swift的使用情况,而无需像在您的解决方案中那样手动定义?因此,此QA可能会对您有所帮助。谢谢,这很有希望!然而,我仍然看不到一种从框架之外实现我想要的方法:让Obj-C的初始值设定项可以从Obj-C获得,但是只有Swift的初始值设定项可以从Swift获得。我已更新问题以反映这一点。我要看报纸,看能不能找到合适的。