尝试使用我自己的类时未声明的标识符

时间:2014-10-30 03:14:08

标签: objective-c xcode

我是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"

viewDidLoad的{​​{1}}方法中,我尝试了这两行代码。它们都因此错误而失败:ViewController.m

Use of undeclared identifier 'Bridge'

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您没有声明名为Bridge的类。您所做的就是在名为NSObject的{​​{1}}上创建一个类别。两个完全不同且无关的东西。

名为Bridge的类将位于名为BridgeBridge.h的文件中,并声明为:

Bridge.m

也许你想要:

Bridge.h

@interface Bridge : NSObject

Bridge.m

@interface Bridge : NSObject

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

@end

BTW - 方法的典型命名约定意味着您的方法应该真正命名:

#import "Bridge.h"

@implementation Bridge

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

请注意使用驼峰案例而不是使用下划线。

答案 1 :(得分:0)

您已宣布category。因此,您可以直接使用category方法对现有类进行初始化。