1
當我重寫我的類的getters和setters,並在別處設置miles
屬性時,不會調用setter方法。我究竟做錯了什麼?目標C中沒有調用Setter方法
我叫miles
財產這裏
// "entry" is an object that has a property of type CYDistance
if ([unitLabel.text isEqualToString:@"Miles"]) {
entry.distance.miles = s.floatValue;
}
else if ([unitLabel.text isEqualToString:@"Kilometers"]) {
entry.distance.kilometers = s.floatValue;
}
NSLog(@"Miles: %.2f", entry.distance.miles);
NSLog(@"Kilometers: %.2f", entry.distance.kilometers);
Distance.h
#import <Foundation/Foundation.h>
@interface CYDistance : NSObject {
float miles, kilometers;
}
@property float miles;
@property float kilometers;
@end
Distance.m
#import "Distance.h"
@implementation CYDistance
- (float)miles {
return miles;
}
- (float)kilometers {
return kilometers;
}
- (void)setMiles:(float)m {
miles = m;
kilometers = m * 1.609344;
NSLog(@"Set miles");
}
- (void)setKilometers:(float)k {
kilometers = k;
miles = k/1.609344;
NSLog(@"Set kilometers");
}
@end
您的實現是針對Class Distance的,而您的接口是針對CYDistance類的。在CYDistance中定義getter和setter。 – 2012-07-06 17:15:26
顯示您要創建CYDistance實例的代碼並將其設置爲「英里」屬性。 – Caleb 2012-07-06 17:37:18
刪除@dynamic關鍵字,無論如何它們在這種情況下都不會被使用,這只是令人困惑。請提供一個例子,說明你是如何致電二傳手的。 – uvesten 2012-07-06 17:37:37