这里绝对是初学者。我正在尝试使用几种不同的来源来教自己Xcode。在当前课程中,我只是试图将字符串中的每个单词都大写。出于某种原因,即使我不得不复制行中的内容,也无法选择使用addObject!这是我正在使用的代码,我只是将其输入到ViewController.m中。我没有碰过头文件。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *myString = @"How much wood could a woodchuck chuck";
NSArray *wordsInSentence = [myString componentsSeparatedByString:@" "];
NSLog(@"%@", wordsInSentence);
NSMutableArray *capitalizedWords = [[NSMutableArray alloc] init];
for (int word =0; word < [wordsInSentence count]; word++)
{
NSString *uncapitalizedWords = [wordsInSentence objectAtIndex:word];
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
}
NSLog(@"%@", capitalizedWords);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
我的问题是
[capitalizedWords addObject:capitalizedWords];
当我开始输入内容时,它甚至没有在下拉框中显示addObject作为选项,我唯一的选择就是addObserver。
任何和所有帮助将不胜感激,谢谢
最佳答案
问题是您要将该字符串命名为与数组相同的字符串。
尝试改变
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
至:
NSString *capitalizedWordsString = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWordsString];
当您声明与数组同名的字符串时,您在对数组进行阴影处理,Xcode将把
capitalizedWords
视为字符串,而不是数组。这就是为什么它没有为您提供addObject
方法的原因。