2010-10-07 143 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节点的另一个别名。