Невозможно включить класс в другой в IOS - PullRequest
2 голосов
/ 17 сентября 2011

Я хочу создать объект одного класса в другой. У меня есть 2 класса

  1. MyviewControler
  2. Checkout

Я хочу импортировать Checkout в MyviewController

#import "Checkout.h"

@interface MyViewController : UIViewController <UIImagePickerControllerDelegate>
{
    Checkout *checkout;
}

@property (nonatomic) Checkout *checkout;

@end

Выдает ошибку «Проверка неизвестного имени типа»

Ответы [ 4 ]

7 голосов
/ 17 сентября 2011

В MyViewController.h перед @interface добавьте:

@class Checkout; 

В MyViewController.m добавьте:

#import "Checkout.h" 
4 голосов
/ 17 сентября 2011

Если ошибка действительно так, как вы говорите:

Unknown type name checkout

(обратите внимание на маленькую букву 'c'), то проблема в том, что вы используете checkout в качестве имени типа вместо Checkoutгде-то в вашем коде.

4 голосов
/ 17 сентября 2011

у вас, вероятно, есть цикл зависимости. используйте предварительное объявление, которое сообщает компилятору, что существует класс с таким именем, без необходимости видеть его объявление:

@class Checkout; // << the forward declaration

@interface MyViewController : UIViewController <UIImagePickerControllerDelegate>
{
    Checkout *checkout;
}

@property (nonatomic) Checkout *checkout;

@end

// MyViewController.m
...
#import "Checkout.h"

предварительные декларации предпочтительны в большинстве случаев. Исключением является ситуация, когда существует физическая зависимость (например, объявление суперкласса должно предшествовать подклассу). предварительные объявления хороши тем, что они значительно сокращают время сборки и сложность включаемых графов и зависимостей.

удачи

1 голос
/ 17 сентября 2011

импортировать файл также в файл MyViewController.m.

  //in .m file
  #import "Checkout.h"

  @class Checkout;   //this was missing

Кроме того, дайте собственность как это.

  @property(nonatomic, retain) Checkout* checkout

и синтезировать его в файл .m

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...