xCode不允许addObject

问题描述:

绝对初学者在这里。我试图用几种不同的来源教自己的Xcode。我目前的课程,我只是试图用字符串来表示每个单词。出于某种原因,我没有给出使用addObject的选项,尽管我已经采取了复制线的方式来处理本书中的内容!这里是我正在使用的代码,我只是将它输入到ViewController.m中。我没有碰到头文件。xCode不允许addObject

#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方法。

+0

立即工作,非常感谢。 – 2014-10-06 13:13:35

的问题是,你必须使用相同的名称,capitalizedWords两个变量。一个是可变数组,另一个是字符串。因此,当您在for循环内使用capitalizedWords时,它将使用字符串演绎。我建议重新命名字符串变量,例如,更换:

NSString *uncapitalizedWords = [wordsInSentence objectAtIndex:word]; 
NSString *capitalizedWords = [uncapitalizedWords capitalizedString]; 
[capitalizedWords addObject:capitalizedWords]; 

NSString *uncapitalizedWord = [wordsInSentence objectAtIndex:word]; // renaming this isn't critical, but using singular case makes it more clear 
NSString *capitalizedWord = [uncapitalizedWord capitalizedString]; // renaming this fixes the problem 
[capitalizedWords addObject:capitalizedWord]; 
+0

它的工作,非常感谢你 – 2014-10-06 13:14:56