【问题标题】:Cannot find protocol declaration in objective c在目标 c 中找不到协议声明
【发布时间】:2013-10-28 08:11:50
【问题描述】:
#import <Foundation/Foundation.h>
@interface dog:NSObject<logging>{
@private
int age;
}
@property int age;

@end
@implementation dog
@synthesize age;
-(void)log{
NSLog(@" this is a god having age %d ",age);
}
@end
@protocol logging
-(void)log;
@end
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
dog *loop=[[dog alloc] init];
//[dog setAge:6];
[dog log];
[pool drain];
return 0;
}

当我尝试运行此代码时 该程序给出错误“找不到用于记录的协议声明 为什么?

【问题讨论】:

  • 我找不到的一件事是缩进。
  • 在objective c 中缩进有什么作用,否则让代码易于阅读,它是一个您可以阅读的小代码,先生?
  • @userXXX 不,它非常难以阅读,因为没有缩进(以及一般的空格......)。始终正确缩进您的代码。哪怕只有3行。你知道你可以阅读看起来像这样的文本,但这非常困难,因为单词之间没有分隔符。同样的事情也适用于代码。
  • 非常感谢先生的友好评论

标签: objective-c protocols declaration


【解决方案1】:

.h 文件中声明您的协议,如下所示,尽管在.m 文件中声明:-

#import <Foundation/Foundation.h>
@protocol logging
-(void)log;
@end
@interface dog:NSObject<logging>{
@private
int age;
}
@property int age;

@end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多