2010-07-25 40 views
0

不可見接口以外我有一個視圖控制器,其產生在其內部2個視圖控制器。裏面每一個孩子的控制器我想創造一個屬性,這將是公開的,並從父控制器訪問。屬性上iPhone應用

我使用下面的方法

TableViewController.h 

@interface TableViewController : UITableViewController { 
    NSInteger projectId; 
} 

@property NSInteger projectId; 

TableViewController.m 

@implementation TableViewController 

@synthesize projectId; 

... 

@end 

我當時期待父視圖控制器能夠創建兒童和訪問parentId的變量:

ParentViewController.h 

#import "TableViewController.h" 
@interface ParentViewController : UIViewController { 
    TableViewController* tableViewController; 
} 

@property (nonatomic, retain) TableViewController* tableViewController; 

ParentViewController.m 

@implementation ParentViewController 

- (void)viewDidLoad { 
    self.tableViewController = [[TableViewController alloc] initWithNibName:@"TableViewController" bundle:nil]; 
    self.tableViewController.projectId = 100; 
} 

但是,找不到屬性projectId,並返回錯誤 - 請求成員'projectId'在某些不是結構或聯合中。

如果我更改線路

self.tableViewController.projectId = 100; 

[self.tableViewController setProjectId:100]; 

我得到的警告 - 'TableViewController' 不能爲 '-setProjectId'

我的XCode中編譯對此作出迴應4預覽2,但在XCode 3.2內也有同樣的問題

我是顯然缺少一些明顯的東西,但無法弄清楚它是什麼。

爲什麼我不能訪問此屬性?

+0

你有一個叫做'TableViewController'的筆尖嗎? – mk12 2010-07-25 20:44:01

+0

是的,我願意。一切正常,但該屬性無法訪問。我認爲這可能是新IDE中的一個錯誤,但似乎並非如此。 – Xetius 2010-07-25 20:56:52

回答

0

原來我有兩個TableViewController文件副本。其中一個是我所有的改變,另一個是空的。我最初建立在錯誤的目錄中的文件,當我刪除它,我剛剛從項目中刪除它。

一旦我刪除了這些僞造文件,一切正常。

傻逼我!

+0

多麼煩惱!我認爲Xcode會在這種情況下提醒你。希望在Xcode4中這會變得更好 – user123444555621 2010-07-31 08:13:00

+0

是的,令人討厭的是我在XCode 4中編輯的文件並不是編譯時包含的文件。多麼奇怪。 – Xetius 2010-08-01 08:04:13

0

您是否#import您的.h文件在相應的.m文件中?

+0

顯然如此。絕對看起來像我。我想我會在早上用新鮮的眼睛來看它。 – Xetius 2010-07-25 21:10:09