Ошибка компоновщика Apple Mach-O (APActivityIcon)

У меня проблема! Извините, я новичок в программировании и не знаю, что делать. Я реализовал некоторый код, чтобы настроить свой ActivitiViewController. Я создал новый класс, который я связал со своим кодом:

  - (IBAction)share:(id)sender
 {
     Class avcClass = NSClassFromString(@"UIActivityViewController");
     if (avcClass) {

         APActivityProvider *ActivityProvider = [[APActivityProvider alloc] init];
         UIImage *ImageAtt = [UIImage imageNamed:@"MyApp Icon 512x512.png"];
         NSArray *Items = @[ActivityProvider, ImageAtt];


         APActivityIcon *ca = [[APActivityIcon alloc] init];
         NSArray *Acts = @[ca];

         UIActivityViewController *ActivityView = [[UIActivityViewController alloc]
                                                    initWithActivityItems:Items
                                                    applicationActivities:Acts];
         [ActivityView setExcludedActivityTypes:
          @[UIActivityTypeAssignToContact,
          UIActivityTypeCopyToPasteboard,
          UIActivityTypePrint,
          UIActivityTypeSaveToCameraRoll,
          UIActivityTypePostToWeibo]];

         [self presentViewController:ActivityView animated:YES completion:nil];
         [ActivityView setCompletionHandler:^(NSString *act, BOOL done)
          {
              NSString *ServiceMsg = nil;
              if ( [act isEqualToString:UIActivityTypeMail] )           ServiceMsg = @"Mail sended!";
              if ( [act isEqualToString:UIActivityTypePostToTwitter] )  ServiceMsg = @"Post on twitter, ok!";
              if ( [act isEqualToString:UIActivityTypePostToFacebook] ) ServiceMsg = @"Post on facebook, ok!";
              if ( [act isEqualToString:UIActivityTypeMessage] )        ServiceMsg = @"SMS sended!";
              if ( done )
              {
                  UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:ServiceMsg message:@"" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
                  [Alert show];


          }}];

.........Однако я запускаю код, но все равно получаю ошибку! Мои два файла, которые я создал, называются APActivityProvider. Итак, теперь я получаю эту ошибку и не знаю, как ее лечить. В чем ошибка моей архитектуры?

введите здесь описание изображения

Любые советы, предложения или решения?

Спасибо


person MasterRazer    schedule 05.11.2012    source источник
comment
Вы импортировали APActivityIcon.h? Является ли значок активности частью правильной цели? (Проверьте файловый инспектор слева, там должны быть флажки для ваших целей. Выберите свой APActivityIcon.m и проверьте в файловом инспекторе его цели). Ошибка, кажется, предполагает, что он не может его найти.   -  person WDUK    schedule 06.11.2012


Ответы (4)


APActivityIcon.m, вероятно, не компилируется с вашим приложением, хотя, вероятно, должно быть.

Если это часть библиотеки, вам придется настроить эту библиотеку как зависимость в Xcode, а затем связать свое приложение с этой статической библиотекой.

person justin    schedule 06.11.2012
comment
можешь сделать фотку? Это было бы очень полезно. Спасибо - person MasterRazer; 06.11.2012
comment
@NoahRaissi просто попробуйте удалить файл из своего проекта, а затем снова добавить его. фото занимают столько времени!!! :) - person justin; 06.11.2012
comment
Ну, это то, что я делал раньше... Я не знаю, что делать?! - person MasterRazer; 06.11.2012
comment
@NoahRaissi намеренно вводит синтаксическую ошибку в APActivityIcon.m -- компилятор выдает ошибку или нет? - person justin; 06.11.2012
comment
оно делает! Хммм... я все проверил... это баг? - person MasterRazer; 07.11.2012

Простые 4 шага, чтобы следовать :)

Шаг 1. Нажмите на название проекта.

введите здесь описание изображения

Шаг 2. Нажмите «Имя проекта» в разделе «Цели» и выберите вкладку «Фазы сборки».

введите здесь описание изображения

Шаг 3. Проверьте список исходных файлов компиляции и добавьте имя отсутствующего файла, нажав кнопку + внизу

введите здесь описание изображения

Шаг 4. Введите имя файла, и он появится в списке поиска, просто добавьте его, и все готово :)

введите здесь описание изображения**

Надеюсь, это поможет :) Удачного кодирования

person Jamal Zafar    schedule 03.04.2013

Вам необходимо проверить, есть ли у целевых архитектур в деталях проекта связанных библиотек все основные целевые архитектуры.

Другими словами, перейдите к настройкам сборки вашего проекта, проверьте строку «Архитектуры» (по умолчанию у вас теперь будут armv7 и arv7), затем выполните итерацию по каждому проекту включенных библиотек и проверьте, совпадают ли они.

person Karol Wojtaszek    schedule 05.11.2012
comment
Затем вы должны проверить, есть ли у вас файл APActivityIcon.m, указанный в фазах сборки в источниках компиляции. - person Karol Wojtaszek; 06.11.2012
comment
там есть?! любое другое решение - person MasterRazer; 06.11.2012

Если это проблема с вашей архитектурой, вы можете решить ее, проверив настройки BuildActiveArchitectureOnly в вашем проекте, а также целевые настройки сборки.

См. это. Надеюсь это поможет. Удачного кодирования :)

person Mathew Varghese    schedule 06.11.2012