我已经重复了第三次错误,但我找不到什么是未声明的标识符…
我用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)