我有一个关于为iOS 5进行Mobile Substrate调整的问题。
关于进行Cydia调整的大多数教程都采用了这一步:“下载私有框架头”。 所以,我是从https://github.com/kennytm/iphone-private-frameworks
下载的由于私有框架是从iOS 3.x转储的,因此不包括一些新的方法和变量。
因此,我将这些变量添加到我的Tweak.xm中。我也导入了private-framework-headers。
例如:
#import "/opt/theos/include/UIKit/UIKit2.h"
#import "/opt/theos/include/UIKit/UIKeyboardLayoutStar.h"
@interface UIKeyboardImpl : UIView
@property(assign, nonatomic) BOOL showsCandidateInline;
@property(assign, nonatomic) BOOL showsCandidateBar;
@end
然而,当我编译调整时,我遇到了这些错误:
Tweak.xm:45: error: duplicate interface declaration for class ‘UIKeyboardImpl’
Tweak.xm:45: error: redefinition of ‘struct UIKeyboardImpl’
Tweak.xm:45: error: trying to finish struct, but kicked out due to previous parse errors
如何解决此问题? 我应该编辑iOS 3的私有框架头并从iOS 5添加新变量吗?
非常感谢
答案 0 :(得分:2)
添加类别将解决此问题。
@interface UIKeyboardImpl (YourCategory)
@property(assign, nonatomic) BOOL showsCandidateInline;
@property(assign, nonatomic) BOOL showsCandidateBar;
@end