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
  • 161,348
  • 33
  • 346
  • 320
tarnfeld
  • 25,992
  • 41
  • 111
  • 146
  • 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
  • 161,348
  • 33
  • 346
  • 320
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
  • 46,656
  • 50
  • 121
  • 144