Iphone 循环依赖&引用;预期的说明符限定符列表“;
我得到了预期的说明符限定符列表错误,在搜索时,一些人描述了循环依赖性。我不确定这是什么意思,如果可能的话,我可以解释一下。基本上,我有一个类Foo,它在.m文件中使用了Bar类型。我不需要一个酒吧。我以为我可以在Foo.h文件中导入“Bar.h”,因为Foo.m导入了Foo.h文件,但这就是我得到错误的地方。在这种情况下,为什么要将它放在.m文件中,而不仅仅是将所有内容都包含在.h文件中,以使文件顶部的内容更清晰?对不起,如果这是一个愚蠢的问题。谢谢。循环依赖项正是它听起来的样子。你肯定有一个 请这样看: 福需要酒吧,但酒吧需要福 所以,您实例化Foo,它将获得对Bar的引用。这个实例化了Bar,所以它得到了对Foo的引用。这将再次实例化Foo,因此它将获得对Bar的引用。嗯,这个酒吧需要一个Foo,所以它去了,得到了一个Foo的引用 这种情况不断发生,本质上是一个无限循环。为了克服循环依赖,您可以告诉Foo关于Bar的信息Iphone 循环依赖&引用;预期的说明符限定符列表“;,iphone,objective-c,Iphone,Objective C,我得到了预期的说明符限定符列表错误,在搜索时,一些人描述了循环依赖性。我不确定这是什么意思,如果可能的话,我可以解释一下。基本上,我有一个类Foo,它在.m文件中使用了Bar类型。我不需要一个酒吧。我以为我可以在Foo.h文件中导入“Bar.h”,因为Foo.m导入了Foo.h文件,但这就是我得到错误的地方。在这种情况下,为什么要将它放在.m文件中,而不仅仅是将所有内容都包含在.h文件中,以使文件顶部的内容更清晰?对不起,如果这是一个愚蠢的问题。谢谢。循环依赖项正是它听起来的样子。你肯定有一个
//Foo.h
@class Bar
@interface Foo: NSObject {
}
@end
然后,在Foo.m中导入Bar的标题
//Foo.m
#import "Foo.h"
#import "Bar.h"
@implementation Foo
-(void)barTime {
Bar bar = [[[Bar alloc] init] autorelease];
[bar getDrunk];
}
@end
这打破了锁链。Foo只知道Bar,所以只有Bar才能得到Foo。循环依赖项就是它听起来的样子。你肯定有一个 请这样看: 福需要酒吧,但酒吧需要福 所以,您实例化Foo,它将获得对Bar的引用。这个实例化了Bar,所以它得到了对Foo的引用。这将再次实例化Foo,因此它将获得对Bar的引用。嗯,这个酒吧需要一个Foo,所以它去了,得到了一个Foo的引用 这种情况不断发生,本质上是一个无限循环。为了克服循环依赖,您可以告诉Foo关于Bar的信息
//Foo.h
@class Bar
@interface Foo: NSObject {
}
@end
然后,在Foo.m中导入Bar的标题
//Foo.m
#import "Foo.h"
#import "Bar.h"
@implementation Foo
-(void)barTime {
Bar bar = [[[Bar alloc] init] autorelease];
[bar getDrunk];
}
@end
这打破了锁链。Foo只知道Bar,所以只有Bar才能得到Foo。浏览以下链接并浏览以下链接和