Я пытаюсь передать dogData с моего ViewController на PetViewController (через модальный переход). Тем не менее, по какой-то причине, когда я пытаюсь передать dogData (NSMutableArray), я получаю эту ошибку:Передача данных через modal segue: [__NSArrayI length]: непризнанный селектор, отправленный в экземпляр
[__NSArrayI length]: unrecognized selector sent to instance
Любая идея, почему это может быть? См. Приведенный ниже код (надеюсь, что это достаточно информации, попытался обрезать его).
ViewController.h
@property (strong, nonatomic) NSMutableArray *dogData;
ViewController.m
NSMutableDictionary *viewParamsDogs = [NSMutableDictionary new];
[viewParamsDogs setValue:@"mydogs" forKey:@"view_name"];
[DIOSView viewGet:viewParamsDogs success:^(AFHTTPRequestOperation *operation, id responseObject) {
self.dogData = [responseObject mutableCopy];
NSLog(@"This is the dog photo data %@", self.dogData);
[operation responseString];
NSDictionary *dic = [responseObject valueForKey: @"field_pet_photo_path"];
NSArray *arr = [dic valueForKey: @"und"];
NSDictionary *dic2= [arr objectAtIndex : 0];
NSString *path = [NSString stringWithFormat:@"%@", [dic2 valueForKey: @"safe_value"]];
NSMutableCharacterSet *characterSetToTrim = [NSMutableCharacterSet characterSetWithCharactersInString:@"()\""];
[characterSetToTrim formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
path = [path stringByTrimmingCharactersInSet:characterSetToTrim];
if([path length]>0) {
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
self.dogimageView.image = image;
} else {
NSString *ImageURL = @"http://url.ca/paw.png";
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURL]];
self.dogimageView.image = [UIImage imageWithData:imageData];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure: %@", [error localizedDescription]);
}];
- (IBAction)openPetProfile:(id)sender {
PetViewController *petProfile = [[PetViewController alloc] init];
petProfile.petSubDetail = self.dogData;
[self presentViewController:petProfile animated:YES completion:nil];
}
PetViewController.h
@property (nonatomic, copy) NSMutableArray *petSubDetail;
@property (weak, nonatomic) IBOutlet UILabel *petName;
PetViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.petName.text = [self.petSubDetail valueForKey:@"petname"];
}
Выходные данные:
"field_petname" = {
und = (
{
format = "<null>";
"safe_value" = Pebbles;
value = Pebbles;
}
);
};
Почему вы вызываете 'valueForKey:' 'в массиве? Это возвращает вам еще один массив. – rmaddy
@rmaddy должен ли я использовать objectForKey (я думал, что использовал это для словарей)? Извините за newb Q. Чем это должно быть? –
Вам нужно прояснить, что вы хотите от массива. Вам нужно уточнить, что находится в массиве. Вы правы, 'objectForKey' для словарей. Кажется, вы хотите получить какой-то заголовок из массива. Но где в массиве есть название, которое вы хотите? – rmaddy