我創建了一個例子來學習objective-c中的一些基礎知識。我有一個叫Person的類,如下所示。在main方法我打電話description
方法來打印一些數據,並且據我所知,description method
類似於toString
在java..but description
方法我創建不叫描述方法沒有被調用
請看看下面的代碼,讓我知道爲什麼description
方法的內容沒有被調用。
person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject {
int age;
int weight;
}
-(void) setAge:(int) age;
-(void) setWeight: (int) weight;
-(int) getAge;
-(int) getWeight;
-(NSString *) description;
@end
person.m
#import "Person.h"
@implementation Person
-(void) setAge:(int) a {
age = a;
}
-(void) setWeight:(int) w {
weight = w;
}
-(int) getAge {
return age;
}
-(int) getWeight {
return weight;
}
-(NSString *) description {
NSString *desc = @("my age is: %i and my weight is: %i", age, weight);
NSLog(@"%@", desc);
return desc;
}
@end
主要:
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "Person.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
Person *me = [[Person alloc] init];
[me setAge:20];
[me setWeight:55];
NSString *desc = [me description];
NSLog(@"%@", desc);
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
你檢查,把___break point___在你的代碼?或者你沒有得到日誌消息,並假設該方法根本沒有被調用? – nayem
@nayem這就是爲什麼我添加NSLog裏面的描述方法.. slog消息不打印 – user2121
'NSString * desc = @(「我的年齡是:%我和我的體重是:%我」,年齡,體重);'這是一種奇怪的方法來創建'NSString'' stringWithFormat:'。 – Larme