0

我对 Objective-C 还很陌生,我遇到了一个问题。

我需要将一些信息从一个视图控制器传递到另一个。我尝试了多种方法,要么得到构建错误,要么没有足够的意义。

这是我到目前为止所拥有的。

在第二个视图控制器 h 文件中:

@property (nonatomic) NSString *OwnerID;

数据应该进入这个属性。

在第一个视图控制器 m 文件中:

MoreByUserViewController *moreimg =[[MoreByUserViewController alloc] init];
moreimg.OwnerID = ImageOener;

我认为这是不正确的,但不知道还能写什么。

我得到的铿锵错误:

duplicate symbol _m_PageCounter in:
/Users/ianspence/Library/Developer/Xcode/DerivedData/Pickr-dohtanjxfozprjbuwlphjbhvxttm/Build/Intermediates/Pickr.build/Debug-iphonesimulator/Pickr.build/Objects-normal/i386/PKRViewController.o
/Users/ianspence/Library/Developer/Xcode/DerivedData/Pickr-dohtanjxfozprjbuwlphjbhvxttm/Build/Intermediates/Pickr.build/Debug-iphonesimulator/Pickr.build/Objects-normal/i386/MoreByUserViewController.o
ld: 1 duplicate symbol for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

3 回答 3

1

是循环引用吗?检查你的头文件。

于 2012-07-13T05:08:26.677 回答
0

您的问题是其他问题,现在您收到 _m_PageCounter 错误。我认为您两次将 m_PageCounter 或在两个不同的标题中使用了相同的变量..

在 .h 文件中只需声明 @class MoreByUserViewController。并在 .m fie 中添加 MoreByUserViewController 的头文件。

    @interface MoreByUserViewController : UIViewController
    {
        NSString *mOwnerID;
    }
    @property(nonatomic, retain) NSString *OwnerID;
   -(id)initWithID:(NSString*)inId;
    @end

    @implementation MoreByUserViewController

    @synthesize OwnerID = mOwnerID; 

    -(id)initWithID:(NSString*)inId
   {
      if(self = [super init])   
      {
          self.OwnerID = inId;
      }
      return self;
   }

    @end

//代码中的其他地方

MoreByUserViewController *moreimg =[[MoreByUserViewController alloc] initWithID:@"AnyIdOnUrWish"];
于 2012-07-13T05:13:35.877 回答
0

duplicate symbol _m_PageCounterm_PageCounter意味着您在两个地方定义了一个名为的常量或变量或函数。具体来说,在 PKRViewController.m 和 MoreByUserViewController.m 中。

您的选择:

  1. 删除其中之一。
  2. 重命名其中之一。
  3. 声明其中一个,static以便它们在该源文件之外不可见。
于 2012-07-13T05:14:01.153 回答