扫描后没有出现字符

时间:2014-07-22 15:36:22

标签: ios objective-c

我正在制作一个程序,您必须在控制台中输入内容,然后按下视图控制器上的按钮后,它会在控制台中打印出来。当我运行它时,提示被打印但是当我按下按钮时输入不会被打印回来。这是我的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

1 个答案:

答案 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,因为您确保在那时正确设置出口。