【问题标题】:Apple Mach-O Linker error (APActivityIcon)Apple Mach-O 链接器错误 (APActivityIcon)
【发布时间】:2012-10-25 17:39:56
【问题描述】:

我有问题!对不起,我是编程新手,我不知道该怎么做。我实现了一些代码来自定义我的 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。所以现在我得到了那个错误,不知道如何处理这个。我的架构有什么错误?

有任何提示、建议或解决方案吗?

谢谢

【问题讨论】:

  • 你导入了APActivityIcon.h吗?活动图标是正确目标的一部分吗? (检查左侧的文件检查器,您的目标应该有复选框。选择您的 APActivityIcon.m,并检查文件检查器的目标)。该错误似乎表明它找不到它。

标签: iphone objective-c ios error-handling uiactivityviewcontroller


【解决方案1】:

您需要检查链接库项目详细信息中的目标架构是否具有主要目标的每个架构。

换句话说,转到您的项目构建设置,检查架构行(默认情况下,您现在将拥有 armv7 和 arv7s)然后遍历包含库的每个项目并检查它们是否相同。

【讨论】:

  • 您应该检查一下您是否在编译源的构建阶段中列出了 APActivityIcon.m 文件。
  • 在里面吗?!任何其他解决方案
【解决方案2】:

如果这是您的架构问题,您可以通过检查项目中的 BuildActiveArchitectureOnly 设置以及目标构建设置来解决它。

请参阅this。希望这可以帮助。快乐编码:)

【讨论】:

    【解决方案3】:

    APActivityIcon.m 可能没有与您的应用一起编译,但它可能应该编译。

    如果它是库的一部分,那么您必须将该库配置为 Xcode 中的依赖项,然后将您的应用链接到该静态库。

    【讨论】:

    • 你能拍张照片吗?这将非常有用。谢谢
    • @NoahRaissi 尝试从您的项目中删除该文件,然后重新添加它。图片太费时间了!!! :)
    • 那是以前做过的事情...我不知道该怎么办?!
    • @NoahRaissi 故意在APActivityIcon.m 中引入语法错误——编译器是否发出错误?
    • 确实如此!嗯...我检查了所有..这是一个错误吗?
    【解决方案4】:

    简单的 4 个步骤:)

    第 1 步: 点击项目名称

    第 2 步: 点击 Targets 下的 Projects Name 并选择 Build Phases Tab

    第 3 步: 检查编译源文件列表并按底部的 + 按钮添加缺少的文件名

    第 4 步: 输入文件名,它会在搜索列表中显示该文件,只需添加即可:)

    **

    希望这会有所帮助 :) 快乐编码

    【讨论】:

      猜你喜欢
      • 2014-04-06
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 1970-01-01
      相关资源
      最近更新 更多