【发布时间】:2015-08-10 20:58:32
【问题描述】:
首先,我要告诉你,我是 Objective-C 的初学者。以至于我在这里问一个关于我目前正在关注的 CodeSchool.com 上的在线教程的问题。我在教程中做得很好,但我也在关注 Xcode 命令行工具,在教程中编写我自己的主题版本。
我遇到的问题是调用返回字符串的自定义方法,例如 NSString *。我的头文件 Higgie.h 如下:
#import <Foundation/Foundation.h>
@interface Higgie : NSObject
@property NSString *phoneName;
@property NSString *modelNumber;
-(void)speak;
-(NSString *)speakTwo;
@end
我的实现文件,名为 Higgie.m,如下:
#import "Higgie.h"
@implementation Higgie
-(void)speak;
{
NSLog(@"%@ says Hello There!", self.phoneName);
}
-(NSString *) speakTwo; {
NSString *message = [NSString stringWithFormat:@"%@ says hello!", self.modelNumber];
return message;
}
@end
我的 main.m 示例如下:
Higgie *talkingiPhone = [[Higgie alloc]init];
talkingiPhone.phoneName = @"iPhone 7";
talkingiPhone.modelNumber = @"iOS 9";
NSLog(@"I am an %@.", talkingiPhone.phoneName);
Higgie *talkingAndroid = [[Higgie alloc]init];
talkingAndroid.phoneName = @"Samsung S7";
talkingAndroid.modelNumber = @"Android MacadamiaNutCookie";
NSLog(@"Phone Name: %@", talkingAndroid.phoneName);
NSLog(@"Model Number/OS: %@", talkingAndroid.modelNumber);
[talkingiPhone speak];
[talkingAndroid speak];
NSLog(@"%@", [talkingiPhone message]);
在 Higgie.m 中,我创建了一个名为“SpeakTwo”的方法,它应该返回一个名为 message 的 NSString * 变量。我也试过在最后一行调用 NSString *message,但它不起作用。 如何在控制台中显示字符串message?
更新: 基本上,我想做这样的事情: [talkingiPhone speakTwo]; NSLog(@"%@", 消息); 这不起作用,虽然我不知道为什么。我很确定 speakTwo 返回字符串消息,然后我应该能够使用 NSLog 将其记录到控制台。
【问题讨论】:
-
NSLog(@"%@", [talkingiPhone speakTwo]);
-
在您的 Higgie.m 文件中,您有一个错字:speakTwo 签名应该是 - (NSString *)speakTwo { 在 speakTwo 之后,大括号之前不应该有分号。
标签: objective-c macos methods implementation