这里绝对是初学者。我正在尝试使用几种不同的来源来教自己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方法的原因。

10-08 11:46