Повторяющиеся ошибки объявления интерфейса при создании настроек MobileSubstrate

#iphone #ios #cydia

#iPhone #iOS #cydia

Вопрос:

У меня возникла проблема с созданием настроек Mobile Substrate для iOS 5.

В большинстве руководств по созданию настроек Cydia есть этот шаг: «Загрузить заголовки private framework». Итак, я скачал его с: https://github.com/kennytm/iphone-private-frameworks

Поскольку частные фреймворки выгружаются из iOS 3.x, некоторые новые методы и переменные не включены.

Поэтому я добавил эти переменные в свой файл Tweak.xm. И я также импортировал заголовки private-framework.

Например:

 #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
  

Как я могу исправить эту проблему?
Должен ли я редактировать заголовки private framework iOS 3 и добавлять новые переменные из iOS 5?

Большое спасибо

Ответ №1:

Добавление категории исправит это.

 @interface UIKeyboardImpl (YourCategory)
@property(assign, nonatomic) BOOL showsCandidateInline;
@property(assign, nonatomic) BOOL showsCandidateBar;
@end