Эй, ребята, я создаю твик для Instagram, я добавляю суб-предпочтение, называемое instatroll, похожее на trolltwitter, чтобы изменить число подписчиков на любое число, которое пользователь устанавливает (используя PSEditTextCell). Вот мой код.
#import <Foundation/Foundation.h>
static NSMutableDictionary *plist = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/com.idevicelover.InstaEnhancer.plist"];NSNumber *chosenNumber = [NSNumber numberWithInt:999];
int number = chosenNumber;
static BOOL followerson = NO;%hook IGUser -(void)setFollowerCount:(NSNumber*)fp8{
followerson = [[plist objectForKey:@"followerson"]boolValue];
if(followerson){
%orig(number);
}
else{
%orig;
}
}%end%ctor
{
NSDictionary *InstaEnhancer = [[NSDictionary alloc] initWithContentsOfFile:@"/var /mobile /Library/Preferences/com.idevicelover.InstaEnhancer.plist"];
if ([InstaEnhancer objectForKey:@"numberoffollowers"]) number = [[InstaEnhancer objectForKey:@"numberoffollowers"] intValue];
[InstaEnhancer release];
}
я получаю эту ошибку при компиляции: «присваивание NSNumber * от несовместимого типа» int «
NSNumber
это объект. Чтобы использовать его в качестве примитивного типа данных, таких как int
Вы должны извлечь этот тип значения из него с помощью соответствующего метода:
NSNumber *chosenNumber = [NSNumber numberWithInt:999];
int number = [chosenNumber intValue];
Также позже здесь:
number = [[InstaEnhancer objectForKey:@"numberoffollowers"] intValue];
Если в этот момент number
является int
(Понятия не имею, так как этот синтаксис не C ++ или Objective-C), тогда это должно быть хорошо. Но если number
имеет тип NSNumber *
тогда вам нужно сбросить вызов intValue
:
number = [InstaEnhancer objectForKey:@"numberoffollowers"];