使用未声明的标识符" sum"



我已经重复了第三次错误,但我找不到什么是未声明的标识符…

我用objective-C写了一个函数式程序

#import <Foundation/Foundation.h>
@interface Add:NSObject
/* method declaration */
 - (int)add:(int)a andNum2:(int)b;
@end
@implementation Add
/* method returning the max between two numbers */
 - (int)add:(int)a andNum2:(int)b{
/* local variable declaration */

int sum = a +b;
return sum;
}
@end
  NSLog(@"sum is : %d", sum);// error this line     
  return 0;
}
#import <Foundation/Foundation.h>
@interface Add:NSObject{
  int sum;//Declare sum as global variable to access in class
 }
  - (int)add:(int)a andNum2:(int)b;
 @end
 @implementation Add
   - (int)add:(int)a andNum2:(int)b{
   sum = a +b;//
   return sum;
}
@end
NSLog(@"sum is : %d", sum);//Now Access global variable with in class     

这是正确的代码吗?如果是,那么首先你需要调用

NSLog(@"sum is : %d", sum);
return 0;

在某个函数中

sum是在add方法内部声明的变量,因此不能在该函数外部使用。在@interface Add:NSOBject下声明sum,在add法外使用。

如果你不想在add方法外声明它,那么改变

NSLog(@"sum is : %d", sum);

NSLog(@"sum is : %d", [add:@(12) andNum2:@(13)]);

(注:用其他数字或数值变量代替12和13)

最新更新