2010-10-07 49 views
2

我是Objective-C的新手,所以我正在使用一本書來掌握它,我有點在解釋結構, t代表我的生活讓他們的工作預期的標識符或'('之前'。'標記

我有以下代碼:

int main (int argc, char *argv[]) 
{ 

    struct node 
    { 
     int nodeID; 
     int x; 
     int y; 
     BOOL isActive; 
    }; 

    typedef struct node myNode; 

    myNode.nodeID = 1; 

} 

和我得到寫在標題中錯誤每次我搜索這個錯誤在網上我發現了。不同的變體,比如'before'>'token'或'before'}'token',但我找不到'。'標記的任何東西,這真的令人沮喪,我認爲這是一些荒謬的小事和基本的東西。讚賞。

+0

我理解你,Objective-c在嘗試學習時可能會很痛苦,但一旦掌握了它,它就是一種很好的面向對象的編程語言。 – 2010-10-07 11:25:27

回答

1

我想起來了排序,我用下面的,它似乎是現在的固定:

int main (int argc, char *argv[]) 
{  

    struct node 
    { 
     int nodeID; 
     int x; 
     int y; 
     BOOL isActive; 
    }; 

    struct node myNode; 

    myNode.nodeID = 1; 
    myNode.x = 100; 
    myNode.y = 200; 
    myNode.isActive = TRUE; 

} 

感謝您的幫助達斯! :)

+0

很高興你能弄明白(主要)自己!總是在學習過程中很方便。 – 2010-10-07 13:06:51

3

我相信你正試圖修改實際的類型本身。 nodeA現在是該結構的類型,非常類似於int。您需要執行類似nodeA myNode之類的操作,那麼您將無誤地執行myNode.nodeID = 1

+0

感謝您的快速回復。然而,這樣做會產生類似的錯誤:在'myNode'之前預期'=',',',';','asm'或'__attribute__' – 2010-10-07 11:25:46

+0

剛纔我發現我沒有提到我正在做這件事iPhone SDK,我不會想到這可能會有所作爲。可以? – 2010-10-07 11:41:07

+0

你可能會發布圍繞違規行的代碼,或者包含它的函數嗎? – 2010-10-07 11:45:19

0

我認爲原始代碼的問題是,它試圖使myNode使用typedef的類型名稱。因此,myNode不是可以發生賦值的變量。相反,它是struct節點的另一個別名。