我正在制作一个程序,您必须在控制台中输入内容,然后按下视图控制器上的按钮后,它会在控制台中打印出来。当我运行它时,提示被打印但是当我按下按钮时输入不会被打印回来。这是我的View Controller.m
#import "ViewController.h"
@interface ViewController ()
@end
char word[40];
@implementation ViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
NSLog(@"Please enter a word.");
// 1
char cstring[40];
// 2
scanf("%s",cstring);
// 3
NSString *inputString = [NSString stringWithCString:cstring encoding:1];
}
return self;
}
- (IBAction)changeText:(id)sender{
NSLog(@"You entered the word '%@'", inputString);
}
@end
答案 0 :(得分:0)
我很确定iOS没有为iOS应用程序设置标准输入,或者如果确实如此,它不是非常直接的方式(即用于输入的标准C库函数不太可能工作)。尝试读取scanf的返回值,然后在其上使用NSLog() - 在有机会输入字符串之前,您将看到您的日志语句:
int ret = scanf("%s",word); NSLog(@"%d",ret);
我在XCode 6 / iOS 8 beta4上,我看到-1为scanf()&#39的返回值。
完成您正在做的事情的更好方法是使用TextField并在按钮按下的操作中读取该字段的值。此外,你应该在类似" viewWillAppear"或者" viewDidLoad",而不是initFromNib,因为您确保在那时正确设置出口。