Я не являюсь разработчиком Какао, но я пытался создать несколько плагинов для PhoneGap.Этот конкретный метод плагина: 1) сбой приложения без объяснения причин или 2) жалоба на то, как я выпускаю / не выпускаю объект.Я испробовал множество вещей с моей стороны, включая использование Enumerator вместо цикла for.Если кто-нибудь может указать мне правильное направление, это было бы здорово.Я не возражаю против трудозатрат:
- (void)getPreferences:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options {
NSUInteger argc = [arguments count];
NSString* jsCallback = nil;
if (argc > 0) {
jsCallback = [arguments objectAtIndex:0];
} else {
NSLog(@"Preferences.getPreferences: Missing 1st parameter.");
return;
}
NSDictionary *defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
NSMutableArray *keys = (NSMutableArray *) [options objectForKey:@"keys"];
NSMutableDictionary *values = [[NSMutableDictionary alloc] init];
NSUInteger ky = [keys count];
for (int i = 0; i < ky; i ++) {
@try {
[values setObject:[defaults objectForKey:[keys objectAtIndex:i]] forKey:[keys objectAtIndex:i]];
}
@catch (NSException * err) {
NSLog(@"Error %@", err);
}
}
[keys release];
NSString* jsString = [[NSString alloc] initWithFormat:@"%@(%@);", jsCallback, [values JSONRepresentation]];
[defaults release];
[values release];
[webView stringByEvaluatingJavaScriptFromString:jsString];
[jsString release];
}
Версия человека:
options
содержит словарь с одним ключом «keys» - этот ключсодержит массив строк (которые будут использоваться в качестве ключей для поиска)
- Я хочу пройтись по этому массиву и
- Для каждого значения, которое существует в
defaults
для этого ключа скопируйте его в values
, используя тот же ключ - Наконец, я хочу отправить это
values
обратно как JSON (Эта часть работала, когда я только что передал весь объект defaults
в, так что я думаю, что метод JSON работает)