Сообщение об ошибке: несовместимый указатель на целочисленное преобразование, отправляющий «NSArray *__strong» в параметр типа «NSUInteger»

Почему я получаю эту ошибку проблемы?

Несовместимый указатель на целочисленное преобразование, отправляющий «NSArray *__strong» в параметр типа «NSUInteger»

#import "FSConverter.h"
#import "FSVenue.h"

@implementation FSConverter


- (NSArray *)convertToObjects:(NSArray *)venues {

     NSMutableArray *objects = [NSMutableArray arrayWithCapacity:venues];
        for (NSDictionary *v  in venues) {
        FSVenue *ann = [[FSVenue alloc]init];
        ann.name = v[@"name"];
        ann.venueId = v[@"id"];


        ann.location.address = v[@"location"][@"address"];
        ann.location.distance = v[@"location"][@"distance"];

        [ann.location setCoordinate:CLLocationCoordinate2DMake([v[@"location"][@"lat"] doubleValue],
                                                  [v[@"location"][@"lng"] doubleValue])];
        [objects addObject:ann];
     }

     return objects;
}

@end

Ошибка в этой строке:

    NSMutableArray *objects = [NSMutableArray arrayWithCapacity:venues];

person user3429966    schedule 02.04.2014    source источник


Ответы (1)


Это потому, что [NSMutableArray arrayWithCapacity:] ожидает в качестве аргумента целое число, а не массив.

Предполагая, что вы хотите создать изменяемый массив с той же начальной емкостью, что и переданный массив, вы, вероятно, имели в виду:

NSMutableArray *objects = [NSMutableArray arrayWithCapacity:venues.count];

или просто:

NSMutableArray *objects = [NSMutableArray new];

(и забудьте о начальной емкости, учитывая, что вы используете [objects addObject:]).

person trojanfoe    schedule 02.04.2014
comment
Фантастический! Прекрасно работает - person user3429966; 03.04.2014