Objective-Cでのエラー
よろしくお願いします。「Xcode5ではじめるObjective-Cプログラミング(大津真著)」という本を購入し、Objective-Cの勉強をはじめました。Objective-Cが初めてのプログラミング初心者です。
本に記載されたコードを入力しているのですが、下記でエラーが出て困っています。
何度も見なおしたのですが本との違いを見つけることができませんでした。
どこがおかしいのかお分かりの方がおられましたらどうか教えて下さい。
●エラー
more '%' conversions than data arguments
が、下記の2箇所で出ます。(いずれも生年月日の前の@ に矢印がでています。)
>NSLog(@"%@ 生年月日:%@, 身長:%.1fcm"),
>NSLog(@"%@ 生年月日:%@, 身長:%.1fcm"),
実行すると
Thread 1:EXC_BAD_ACCESS(code=EXC_1386_GPFLT)
とでます。
----------
// main.m
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Person *personA = [[Person alloc]init];
[personA setName:@"吉田一郎"];
NSDate *dateA = [NSDate dateWithString:@"1979-11-12 00:00:00 +0900"];
[personA setBirthday:dateA];
[personA setHeight:180.5];
NSLog(@"%@ 生年月日:%@, 身長:%.1fcm"),
[personA name],
[personA birthday],
[personA height];
Person *personB = [[Person alloc]init];
[personB setName:@"山田太郎"];
NSDate *dateB = [NSDate dateWithString:@"1981-03-01 00:00:00 +0900"];
[personB setBirthday:dateB];
[personB setHeight:172.3];
NSLog(@"%@ 生年月日:%@, 身長:%.1fcm"),
[personB name],
[personB birthday],
[personB height];
}
return 0;
}
----------
// Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
-(void)setName:(NSString *)name;
-(NSString *)name;
-(void)setBirthday:(NSDate *)birthday;
-(NSDate *)birthday;
-(double)height;
-(void)setHeight:(double)newValue;
@end
----------
// Person.m
#import "Person.h"
@implementation Person
{
NSString *_name;
NSDate *_birthday;
double _height;
}
-(void)setName:(NSString *)aName
{
_name = aName;
}
-(NSString *)name
{
return _name;
}
-(void)setBirthday:(NSDate *)aBirthday
{
_birthday = aBirthday;
}
-(NSDate *)birthday
{
return _birthday;
}
-(void)setHeight:(double)aHeight
{
_height = aHeight;
}
-(double)height
{
return _height;
}
@end