error unrecognized selector, отправленный в класс при добавлении SDK карты Google в iOS6

Это приложение с одним представлением, и я выполнил инструкцию, указанную в ссылке        https://developers.google.com/maps/documentation/ios/start для добавления SDK карты Google в iOS6. ОШИБКА:

unrecognized selector sent to class 0xe2b0
2013-02-07 15:21:29.788 mapApp[2061:12e03] *** Terminating app due to uncaught exception     
'NSInvalidArgumentException', reason: '+[GMSCameraPosition    
cameraWithLatitude:longitude:zoom:]: unrecognized selector sent to class 0xe2b0'

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  //Override point for customization after application launch.
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    self.window.rootViewController = self.viewController;

   //initializing Google map api key
   [GMSServices provideAPIKey:@"google's api key goes here"];

   [self.window makeKeyAndVisible];
   return YES;

}

ViewController.m

#import "ViewController.h"
#import 
@interface ViewController ()

@end

@implementation ViewController
{
    GMSMapView *mapView;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

   GMSCameraPosition *cam = [GMSCameraPosition cameraWithLatitude:13.0245231 
                                                        longitude:77.64072579999993                
                                                             zoom:6];

   mapView = [GMSMapView mapWithFrame:CGRectZero camera:cam];
   mapView.myLocationEnabled = YES;

   GMSMarkerOptions *options = [[GMSMarkerOptions alloc]init ];
   options.position = CLLocationCoordinate2DMake(13.025738,77.637809);
   options.title = @"ensign";
   options.snippet = @"kalyan nagar";

   [mapView addMarkerWithOptions:options];

}

main.m

#import 
#import 
int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv,nil, NSStringFromClass([AppDelegate class]));
    }
}

При отслеживании ошибки он отображается в операторе return в main.m , который исходит из метода -viewDidLoad после выполнения первой строки

GMSCameraPosition *cam = [GMSCameraPosition cameraWithLatitude:13.0245231 
                                                    longitude:77.64072579999993                
                                                         zoom:6];

Это ускользает от остальных линий.

12
nl ja de
просто дикая догадка, но что происходит, когда вы ограничиваете lat & long до нескольких десятичных знаков ... например, 13.02 и 77.64?
добавлено автор Michael Dautermann, источник
Нет, это не имеет значения.
добавлено автор mavericks, источник

3 ответы

Добавили ли вы код -ObjC в другие флаги компоновщика на шаге 7 раздела инструкции ?

- Дополнительная информация: обратите внимание, что -ObjC чувствителен к регистру.

25
добавлено
Кажется, это ошибка, которую вы получаете, если не указали правильный ключ API. Вы уверены, что используете ключ API для iOS SDK? Например, см. Здесь: Google карта в моем приложении iphone "> stackoverflow.com/questions/14103518/…
добавлено автор Saxon Druce, источник
Возможно, проверьте, что идентификатор пакета вашего приложения совпадает с идентификатором пакета, который вы ввели в консоль API?
добавлено автор Saxon Druce, источник
Я смог получить ту же ошибку, изменив идентификатор пакета в консоли API на что-то неправильное, а затем он был исправлен, когда я снова сменил идентификатор пакета в консоли API. Хотя оба раза потребовалось около 5 минут для изменения поведения (я думаю, после внесения изменений в консоль API, требуется некоторое время для распространения в системах Google).
добавлено автор Saxon Druce, источник
@Dmorneault, убедитесь, что ваш идентификатор пакета совпадает, а также что вы включили SDK Google Maps для службы iOS (шаг 2 в разделе developers.google.com/maps/documentation/ios/… ).
добавлено автор Saxon Druce, источник
Вам необходимо изменить Архитектуры по умолчанию $ (ARCHS_STANDARD_32_BIT) - что означает armv7 armv7s - только armv7 . Но нет, если вы этого не сделаете, во время компиляции вы получите другую ошибку компоновщика, а не эту ошибку времени выполнения.
добавлено автор Saxon Druce, источник
Что для меня работало, устанавливая флаг компоновщика -ObjC как для проекта, так и для цели. Цель должна была переопределить флаг.
добавлено автор Mark, источник
Я добавил все фреймворки, архитектура только armv7, добавлен флаг компоновщика -ObjC, bundleID верен, я включил SDK, предоставив ключ API. Что мне не хватает?
добавлено автор Norbert Bicsi, источник
Oops! .. thanks..I добавил, Simulator Screen пуст, и я получаю это сообщение в окне журнала: 2013-02-08 10: 28: 17.061 mapApp [487: 14603] SDK для Google Maps для версии iOS: 1.0. 2.1667 2013-02-08 10: 28: 17.369 mapApp [487: 12e03] Ошибка ClientParametersRequest, осталось 3 попытки. Error Domain = DASHConnectionError Code = 100 "Операция не может быть выполнена. (Ошибка DASHConnectionError 100.)" ... И это же сообщение повторяется 16 раз.
добавлено автор mavericks, источник
Да, я в этом уверен. Потому что я также сталкиваюсь с подобным вопросом. Когда я добавил вновь созданный ключ, тогда также ошибка такая же. И это новый ключ == >> @ "AIzaSyA5RujfEHK5eSqCifcow-xnHOOtwH9_AFE"
добавлено автор mavericks, источник
Дело в том, что нет ничего плохого в вашей проге, я думаю .. ничто не пропало в информации, предоставленной google. Я следил за их инструкциями по строкам в течение почти одного месяца, а затем я ничего не получал на экране. Но некоторые прекрасный день, где-то в феврале, я получил почту, потому что я зарегистрировался раньше, из google, что они выпустили api для iOS, в тот день, когда я попытался с новым ключом, тогда он работал. Если вы хотите, вы можете отправить ur код мне на [email protected]
добавлено автор mavericks, источник
Я вижу ту же ошибку, вы выяснили, что случилось?
добавлено автор Dmorneault, источник
Мой идентификатор пакета соответствует. Единственное, чего я не знал, это архитектуры. Я удаляю armv7s из архитектур или допустимых архитектур? Это приведет к этой ошибке?
добавлено автор Dmorneault, источник

У меня такая же проблема. Убедитесь, что вы добавили флаг -ObjC в «Настройки сборки» вашего «Целевого» и НЕ «Проект».

Постскриптум Добавление его в обоих местах также не нарушает его.

8
добавлено
по какой-то причине он нарушает другие вещи
добавлено автор Lena Bru, источник

Google Doc говорит Выберите проект, а не конкретную цель, и откройте вкладку «Настройки сборки». В разделе Другие флажки компоновщика добавьте -ObjC. Если эти параметры не отображаются, измените фильтр на панели «Настройки сборки» с «Базовый на все». Иногда это неправильно .... Я должен был добавить флаг компоновщика к цели, чтобы заставить его работать. Это должно помочь кому-то

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.