Этот вопрос связан с подключением к Mobile Substrate, но если вы знаете Objective-C, вы, вероятно, сможете помочь.
У меня есть этот класс, который я выкинул из UIKit. Вот часть этого:
@interface UIStatusBarItem : NSObject {
int _type;
}
@property(nonatomic, readonly, retain) int type;
@property(nonatomic, readonly, retain) int leftOrder;
@property(nonatomic, readonly, retain) int rightOrder;
@property(nonatomic, readonly, retain) int priority;
...
@end
Естественно, если бы я хотел установить int type
, например, в 16, я бы сделал:
MSHookIvar<int>(self, "_type") = 16;
С этого момента [self type]
будет возвращать 16. Это я знаю.
Моя проблема в том, что я не знаю, как компилятор «называет» int
, где хранятся значения для int leftOrder
, int rightOrder
и int priority
. Я пытался:
MSHookIvar<int>(self, "leftOrder")
но это неправильно и крашит телефон. Все, что мне действительно нужно знать, это то, как эти переменные автоматически именуются, если вы не укажете это самостоятельно. Спасибо
Кроме того, я не хочу показаться придурком, но, пожалуйста, не отвечайте просто "не делай этого, это небезопасно". Я знаю, что это не так, поэтому большинство моих продуктов находятся в Cydia, а не в App Store =P