1

My head is about to explode with this logic, can anyone help?

Class A #imports Class B. Class A calls Method A in Class B.

This works great

Class B wants to send a response back to Class A from another method that is called from Method A. If you #import Class A from Class B, it is in effect an infinite loop and the whole thing crashes.

Is there a way to do this properly, like a parent type thing?

BTW, I'm developing for iPhone.

EDIT When i #import Class A from Class B i get this compiler error...

error: expected specifier-qualifier-list before 'StoreHoursCore'

Any ideas?

Jacob Relkin
  • 156,685
  • 31
  • 339
  • 316
tarnfeld
  • 24,994
  • 39
  • 109
  • 145
  • 1
    It's __not__ creating an infinite loop. The `#import` directive prevents a file from being included more than once. Please describe the compilation error you get from doing this. – zneak Mar 13 '10 at 19:03

2 Answers2

7

I believe that using the @class directive should solve your issue.

Using @class forward declares your class type in order that the compiler doesn't cough.

Take a look at this question on SO.

Community
  • 1
  • 1
Jacob Relkin
  • 156,685
  • 31
  • 339
  • 316
3

Use @classto forward declare it as a class. This hints the compiler to know that it is a class, without having to cross include and compile the class multiple times (the reason you are getting your error). ie:

@class myClass;

The #importpreprocessor directive has protection against multiple includes, but the #include directive does not.

Brock Woolf
  • 45,388
  • 47
  • 119
  • 144