0

我是 IOS 开发新手,正在制作简单的程序,这是一款刽子手游戏。我想从 plist 文件中选择一个随机字符串(已完成)。我现在想比较用户输入文本(来自文本字段)并将其与我们从 plist 中随机选择的字符串进行比较。

这是我的 MainViewController.m 代码,因为它是一个实用程序。当前仅使用 MainView。

#import "MainViewController.h"
#import "WordListLoad.h"
@interface MainViewController ()
@end
@implementation MainViewController
@synthesize textField=_textField;
@synthesize button=_button;
@synthesize correct=_correct;
@synthesize UsedLetters=_UsedLetters;
@synthesize newgame=_newgame;
- (IBAction)newg:(id)sender
{
[self start];
}
- (void)start
{
NSMutableArray *swords = [[NSMutableArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"swords" ofType:@"plist"]];
NSLog(@"%@", swords);
NSInteger randomIndex = arc4random() % [swords count];
NSString *randomString = [swords objectAtIndex:randomIndex];
NSLog(@"%@", randomString);


}

这是我想实现检查的地方,我已经尝试过 characterAtIndex 并且我似乎无法让它用于放置在字符串中的硬编码,更不用说使用 for 语句来系统地检查字符串。

- (void)check: (NSString *) randomString;
{
//NSLogs to check if the values are being sent

NSLog(@"2 %@", self.textField.text);

}
- (IBAction)go:(id)sender
{
[self.textField resignFirstResponder];

NSLog(@"1 %@", self.textField.text);
[self check:(NSString *) self.textField];
_textField.text = nil;


}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[self start];

}
4

3 回答 3

1

比较 2 个字符串:[string1 equalsToString:string2]. 如果 string1 等于 string2,这将返回 true。要获取 UITextfield 中包含的字符串:textfield.text.

于 2013-07-01T15:18:04.047 回答
0

对于您的检查方法,您发送的是 UITextfield 本身,而不是其文本字符串。而是尝试:

[self check: self.textfield.text];

您还需要创建一个 NSString 属性来保存 plist 中的随机字符串,以便稍后访问以与文本字段字符串进行比较,如下所示:

在类的接口中声明:

@property (nonatomic,strong) NSString* randomString;

在启动方法中:

self.randomString = [swords objectAtIndex:randomIndex];

在检查方法中:

return [self.randomString isEqualToString:randomString];
于 2013-07-01T15:19:24.523 回答
0

鉴于这是一个刽子手游戏,我假设您正在尝试查看给定字符串是否包含单个字母 - 所以 equalsToString: 不会是您想要的。

相反,使用rangeOfString:options 可能更好:

if ([randomString rangeOfString:self.textfield.text options:NSCaseInsensitiveSearch].location != NSNotFound){
    // Do stuff for when the letter was found
}
else {
    // Do stuff for when the letter wasn't found
}

此外,正如 Patrick Goley 所指出的,您需要确保使用 textfield.text 值从中获取字符串。与存储您将用作隐藏词的初始词相同。

还有一些其他小代码问题(例如,函数头中的分号)您需要清理它们才能拥有一个正常运行的应用程序。

编辑:使字符串调用的范围实际上使用文本字段的文本,并且不区分大小写(以防止用户在单词小写时输入大写字母时错误返回,反之亦然)。还包括指向NSString 的 rangeOfString:options 文档的链接:

于 2013-07-01T20:44:27.010 回答