在课程之间传递信息

时间:2012-07-13 05:00:37

标签: objective-c ios xcode

我对Objective-C很新,我遇到了一个问题。

我需要将一些信息从一个viewcontroller传递给另一个。我已经尝试了很多方法,要么出现构建错误,要么没有足够的意义。

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

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

@property (nonatomic) NSString *OwnerID;

数据应该进入这个属性。

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

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

我认为这不正确,但不知道还有什么要写。

我得到的clang错误:

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)

3 个答案:

答案 0 :(得分:1)

是循环参考吗?看看你的头文件。

答案 1 :(得分: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"];

答案 2 :(得分:0)

duplicate symbol _m_PageCounter表示您在两个位置定义了一个名为m_PageCounter的常量或变量或函数。具体来说,在PKRViewController.m和MoreByUserViewController.m。

您的选择:

  1. 删除其中一个。
  2. 重命名其中一个。
  3. 声明其中一个static,以便它们不会在该源文件之外显示。