【发布时间】:2015-11-20 03:19:18
【问题描述】:
我是使用objective c 编程的新手,我过去只使用过java。我正在尝试编写一个快速的刽子手游戏,但我遇到了我一生都找不到解决方案的错误。
所以在这种方法中,我试图从 NSArray 中选择一个随机单词并将其设置为等于实例变量 word。
#import <Foundation/Foundation.h>
@interface Hangman : NSObject
{
NSString *word;
}
-(void) randomWord;
-(void) guessLettter: (char) g;
-(void) guessWord: (NSString*) guess;
-(void) displayLetters: (char) x;
@end
#import "Hangman.h"
@implementation Hangman
-(void) randomWord;
{
NSArray *array = [NSArray arrayWithObjects:@"Mercedes", @"Banana", @"Porsche",
@"Dinosaur", @"Blue", @"owls", @"chicken", @"Lollipop", @"Table",
@"Hello", @"Corn", @"Uniform",nil];
int num = 11;
NSUInteger r = arc4random_uniform(11);
word = *[array objectAtIndex:(NSUInteger)r];
}
但是尝试将 word 设置为等于返回的任何对象,这给了我一个关于将 NSString Strong 分配给类型 'id' 的错误,我不知道 'id' 是什么。
【问题讨论】:
-
将
-(void) randomWord;更改为(NSString *)randomWord然后在最后一个}之前添加return word; -
@Tj3n 我按照你说的做了,但是关于类型 id 不兼容的错误仍然存在
-
可能在你的
word = *[array objectAtIndex:(NSUInteger)r];,应该是word = [array objectAtIndex:r]; -
@Tj3n 成功了,谢谢!
标签: objective-c class nsstring nsarray