我是目标C编码的新手,请忍受我询问这是否是一个简单的问题。
当我尝试运行下面的代码时,它说
NO visible @interface for 'SampleClass' declares the selector 'multiplyA:withB'
在目标C?中乘以两个数字是错误的方法。
这是代码的标题文件
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@end
@interface SampleClass : NSObject
-(NSNumber *)multiplYA:(NSNumber *)a withB:(NSNumber *)b;
@end
这是代码的实现文件
#import "AppDelegate.h"
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
SampleClass *sampleClass = [[SampleClass alloc]init];
NSNumber *a = [NSNumber numberWithFloat:10.5];
NSNumber *b = [NSNumber numberWithFloat:10.0];
NSNumber *result = [sampleClass multiplyA:a withB:b];
NSString *resultString = [result stringValue];
NSLog(@"The product is %@",resultString);
}
@end
@implementation SampleClass
- (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b
{
float number1 = [a floatValue];
float number2 = [b floatValue];
float product = number1 * number2;
NSNumber *result = [NSNumber numberWithFloat:product];
return result;
}
@end
这是您在标题文件中的大写。更改标题功能标题为读取:
-(NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b;
您需要的只是在@interface
部分中提供multiplyA:withB
方法的声明。现在读取-(NSNumber *)multiplYA:(NSNumber *)a withB:(NSNumber *)b;
。看到错误吗?大Y。它一定很小。或其他 - 内部@implementation
部分。换句话说,它们应该匹配