eas*_*de5 1 compiler-errors objective-c foundation
我正在尝试创建一个自定义对象,它只是继承NSString类并覆盖'description'方法.
然而,当我编译时,我收到一个警告:
不兼容的指针类型使用类型为"NSString*"的表达式初始化"OverrideTester*"
这是我的代码:
的main.m
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import <Foundation/NSAutoreleasePool.h>
#import "OverrideTester.h"
int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *str = @"Programming is fun";
OverrideTester *strOverride = @"Overriding is fun";
NSLog (@"%@", str);
NSLog (@"%@", strOverride);
[pool drain];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
OverrideTester.h
#import <Foundation/Foundation.h>
@interface OverrideTester : NSString
-(void) description;
@end
Run Code Online (Sandbox Code Playgroud)
OverrideTester.m
#import "OverrideTester.h"
@implementation OverrideTester
-(void) description
{
NSLog(@"DESCRIPTION!\n");
}
@end
Run Code Online (Sandbox Code Playgroud)
NSString是类集群的一部分.你不能只创建它的任意子类,当你这样做时,你不能为它们分配常量字符串(它们是类型NXConstantString).请参阅NSString文档中的Subclassing Notes.通常你不想要子类NSString.对于大多数问题有更好的解决方案.
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |