2014-10-30 3 views
0

Я новичок в Xcode & Цель C. Я пытаюсь создать и использовать свой собственный класс.необъявленный идентификатор при попытке использовать мой собственный класс

//NSObject+Bridge.h 
@interface NSObject (Bridge) 
- (void)modify_coredata:(NSString *)table rows:(NSString *)rows; 
@end 

// NSObject+Bridge.m 
#import "NSObject+Bridge.h" 
@implementation NSObject (Bridge) 
- (void)modify_coredata:(NSString *)table rows:(NSString *)rows { 
    NSLog(@"table: %@", table); 
    NSLog(@"rows : %@", rows); 
} 

В моем ViewController.m файле, я #import "NSObject+Bridge.h" в верхней части файла.

Внутри метода viewDidLoadViewController.m, я пробовал обе эти строки кода. Они оба терпят неудачу с этой ошибкой: Use of undeclared identifier 'Bridge'.

Bridge *b1; = [[Bridge alloc] init]; 
Bridge *b2; 

Что я делаю неправильно?

ответ

2

Вы не объявляете класс с именем Bridge. Все, что вы сделали, это создать категорию на NSObject с именем Bridge. Две совершенно разные и несвязанные вещи.

Класс с именем Bridge будет в файлы с именем Bridge.h и Bridge.m и быть объявлен как:

@interface Bridge : NSObject 

Может быть, вы хотите:

Bridge.h

@interface Bridge : NSObject 

- (void)modify_coredata:(NSString *)table rows:(NSString *)rows; 

@end 

Bridge.m

#import "Bridge.h" 

@implementation Bridge 

- (void)modify_coredata:(NSString *)table rows:(NSString *)rows { 
    NSLog(@"table: %@", table); 
    NSLog(@"rows : %@", rows); 
} 

BTW - типичные соглашения об именовании методов означает, что ваш метод действительно должны быть названы:

modifyCoreData:rows: 

Обратите внимание на использование ГорбатыйРегистр вместо подчеркивания.

+0

В Xcode, когда я добавляю файл, что выбрать для типа файла? Пустой, категория, протокол или расширение? – jftuga

+2

File, New ..., File ..., iOS, Source, Cocoa Touch Class, Next. – rmaddy

0

Вы объявили category. Таким образом, вы можете использовать метод category для существующего класса без его инициализации.

Смежные вопросы