gpt4 book ai didi

objective-c - 有没有一种简单的方法可以禁止框架中的某些方法?

转载 作者:行者123 更新时间:2023-12-01 19:23:00 25 4
gpt4 key购买 nike

我想禁止某些方法。例如

+ (MPMusicPlayerController*)iPodMusicPlayer

所以我尝试这样做:
@interface MPMusicPlayerController (Disallowed)
// do never this method cause issues #957 #632 #1463
// read #632 description to detail analysis why code should never use this method while
// applicationMusicPlayer is used
+ (MPMusicPlayerController*)iPodMusicPlayer __attribute__((unavailable));
+ (MPMusicPlayerController*)iPodMusicPlayer __attribute__((deprecated));
@end

但是下面的代码无论如何都会编译而没有任何警告
MPMusicPlayerController * curPlayer = [MPMusicPlayerController iPodMusicPlayer];

有什么想法吗?

最佳答案

编译时间解决方案:

一种方法,只需使用下一个代码:

#pragma GCC poison iPodMusicPlayer

我应该提到SDK61和SDK7不能“毒化”包含“:”的选择器
造成 llvm bug :(

另一种方式:
#import <MediaPlayer/MediaPlayer.h> // import original methods at first
@interface MPMusicPlayerController (Disallowed)
+ (MPMusicPlayerController*)disallowedMethod_iPodMusicPlayer __attribute__((unavailable));
@end

#define iPodMusicPlayer disallowedMethod_iPodMusicPlayer

关于objective-c - 有没有一种简单的方法可以禁止框架中的某些方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com