Ios xCode赢得';不允许添加对象
这里绝对是初学者。我正在尝试使用几种不同的资源自学Xcode。我当前的课程,我只是想把字符串中的每个单词大写。出于某种原因,我没有选择使用addObject,即使我已经求助于逐行复制书中的内容!这是我正在使用的代码,我只是把它输入ViewController.m。我还没有触及头文件Ios xCode赢得';不允许添加对象,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,这里绝对是初学者。我正在尝试使用几种不同的资源自学Xcode。我当前的课程,我只是想把字符串中的每个单词大写。出于某种原因,我没有选择使用addObject,即使我已经求助于逐行复制书中的内容!这是我正在使用的代码,我只是把它输入ViewController.m。我还没有触及头文件 #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDi
#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
#导入“ViewController.h”
@界面视图控制器()
@结束
@实现视图控制器
-(无效)viewDidLoad{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
NSString*myString=@“一只土拨鼠能扔多少木头”;
NSArray*wordsInSession=[myString组件由字符串分隔:@”“];
NSLog(@“%@”,单词和句子);
NSMUTABLEARRY*大写DWORDS=[[NSMUTABLEARRY alloc]init];
for(int word=0;word<[words句子计数];word++)
{
NSString*uncapitalizedWords=[words语句对象索引:word];
NSString*capitalizedWords=[uncapitalizedWords capitalizedString];
[大写单词添加对象:大写单词];
}
NSLog(@“%@”,大写DWORDS);
}
-(无效)未收到记忆警告{
[超级记忆警告];
//处置所有可以重新创建的资源。
}
@结束
我的问题出在
[大写单词添加对象:大写单词];
当我开始输入时,它甚至没有在下拉框中显示addObject作为选项,我唯一的选项是addObserver
非常感谢您提供的任何帮助问题是您有两个同名的变量,
大写DWORDS
。一个是可变数组,另一个是字符串。因此,当您在for
循环中使用大写DWORDS
时,它使用的是字符串格式副本。我建议重命名字符串变量,例如替换:
NSString *uncapitalizedWords = [wordsInSentence objectAtIndex:word];
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
与
问题是您有两个同名的变量,
capitalizedWords
。一个是可变数组,另一个是字符串。因此,当您在for
循环中使用大写DWORDS
时,它使用的是字符串格式副本。我建议重命名字符串变量,例如替换:
NSString *uncapitalizedWords = [wordsInSentence objectAtIndex:word];
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
与
问题是您有两个同名的变量,
capitalizedWords
。一个是可变数组,另一个是字符串。因此,当您在for
循环中使用大写DWORDS
时,它使用的是字符串格式副本。我建议重命名字符串变量,例如替换:
NSString *uncapitalizedWords = [wordsInSentence objectAtIndex:word];
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
与
问题是您有两个同名的变量,
capitalizedWords
。一个是可变数组,另一个是字符串。因此,当您在for
循环中使用大写DWORDS
时,它使用的是字符串格式副本。我建议重命名字符串变量,例如替换:
NSString *uncapitalizedWords = [wordsInSentence objectAtIndex:word];
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
与
问题是您将字符串命名为与数组相同的名称。 试着改变
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
致:
当您使用与数组相同的名称声明字符串时,您将隐藏数组,Xcode将看到
大写DWORDS
作为字符串,而不是数组。这就是为什么它没有向您提供addObject
方法。问题在于您将字符串命名为与数组相同的名称。
试着改变
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
致:
当您使用与数组相同的名称声明字符串时,您将隐藏数组,Xcode将看到
大写DWORDS
作为字符串,而不是数组。这就是为什么它没有向您提供addObject
方法。问题在于您将字符串命名为与数组相同的名称。
试着改变
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
致:
当您使用与数组相同的名称声明字符串时,您将隐藏数组,Xcode将看到
大写DWORDS
作为字符串,而不是数组。这就是为什么它没有向您提供addObject
方法。问题在于您将字符串命名为与数组相同的名称。
试着改变
NSString *capitalizedWords = [uncapitalizedWords capitalizedString];
[capitalizedWords addObject:capitalizedWords];
致:
当您使用与数组相同的名称声明字符串时,您将隐藏数组,Xcode将看到大写DWORDS
作为字符串,而不是数组。这就是为什么它没有为您提供addObject
方法的原因