//新手,刚学Objective-c
/*
用的Objective-c程序设计第四版
在第225页下面是接口部分
#import <Foundation/Foundation.h>//Fraction类@interface Fraction : NSObject@property int numerator,denominator;//就是这两个变量-(void) print;
-(void) setTo: (int) n over: (int) d;
-(double) convertToNum;-(void) reduce;@end我把分类的接口和实现都放在main.m里(书上是这么做的,而且后来我改成放在新建的文件里还是没用)然后是分类的接口
#import "Fraction.h"@interface Fraction (MathOps)
-(Fraction *) add: (Fraction *) f;
-(Fraction *) sub: (Fraction *) f;
-(Fraction *) mul: (Fraction *) f;
-(Fraction *) div: (Fraction *) f;
@end
下面是实现~~(一部分,其它的问题是一样的)
@implementation Fraction (MathOps)
-(Fraction *) add: (Fraction *) f
{
//添加两个分数
// a/b + c/d = ((a*d) + (b*c)) / (b*d)
//储存相加后的结果
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator * f.denominator + denominator * f.numerator;//就在这里,问题出现了,Xcode提示numerator是未声明的变量还有denominator。
result.denominator = denominator * f.denominator;
我不是在Fraction接口里声明了numerator和denominator么?
难道分类不能使用Fraction的变量?
更怪异的是一旦把import“Fraction.h”改成import"Fraction.m"Xcode就提示错误不存在了,可运行时又会出现一个
ld: 4 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
求大神解释~~~~~100分奉上~~~
*/
/*
用的Objective-c程序设计第四版
在第225页下面是接口部分
#import <Foundation/Foundation.h>//Fraction类@interface Fraction : NSObject@property int numerator,denominator;//就是这两个变量-(void) print;
-(void) setTo: (int) n over: (int) d;
-(double) convertToNum;-(void) reduce;@end我把分类的接口和实现都放在main.m里(书上是这么做的,而且后来我改成放在新建的文件里还是没用)然后是分类的接口
#import "Fraction.h"@interface Fraction (MathOps)
-(Fraction *) add: (Fraction *) f;
-(Fraction *) sub: (Fraction *) f;
-(Fraction *) mul: (Fraction *) f;
-(Fraction *) div: (Fraction *) f;
@end
下面是实现~~(一部分,其它的问题是一样的)
@implementation Fraction (MathOps)
-(Fraction *) add: (Fraction *) f
{
//添加两个分数
// a/b + c/d = ((a*d) + (b*c)) / (b*d)
//储存相加后的结果
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator * f.denominator + denominator * f.numerator;//就在这里,问题出现了,Xcode提示numerator是未声明的变量还有denominator。
result.denominator = denominator * f.denominator;
我不是在Fraction接口里声明了numerator和denominator么?
难道分类不能使用Fraction的变量?
更怪异的是一旦把import“Fraction.h”改成import"Fraction.m"Xcode就提示错误不存在了,可运行时又会出现一个
ld: 4 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
求大神解释~~~~~100分奉上~~~
*/
解决方案 »
- 两个ViewController间传值
- view中添加多个navigation问题
- IPHONE 4.3后JAVASCRIPT的兼容性问题
- 关于数据持久性的问题
- IOS中怎么让线程在主线程上执行100次
- UIView transform 缩放,后移动
- 请问, iPhone6 上有许多健康监控的功能(app应用), 请问这些应用的数据是从何而来的? iPhone6内置了这么多传感器吗?
- 如何实现Page view controller的这个效果?
- iOS DLNA开发,有做过同样功能的朋友求解救。
- NSTimer的释放问题
- 苹果公司icloud未公开API
- cocos2d 怎么实现两个动作执行完之后执行第三个
private int _denominator
public int denominator
{
get{return _denominator ;}
set{_denominator =value;}
}
对象内部使用的话,推荐是用_denominator 当然也可以this.denominator @property int numerator,denominator;
这两个property 对象应该有对应的私有变量,用那个试试,或者result .denominator
好吧,其实我闲的蛋疼
@synthesize denominator = _denominator;
谁告诉你result.denominator = denominator * f.denominator;取当前对象属性denominator可以直接这样取的?
要么是self.denominator 要么_denominator 我看UiViewController里面每个property 他都写了一个_property 的变量的我看我可以转行做IOS开发了