弧语义问题



我是目标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部分。换句话说,它们应该匹配

最新更新