如何将字符串对象添加到NSMutableArray中

31

我有一个名为randomSelection的NSMutableArray:

NSMutableArray *randomSelection;

如果满足特定条件,我正在尝试向该数组添加字符串:

[randomSelection addObject:@"string1"];

我接着尝试输出该字符串,以确定是否已经添加:

NSString *test = [randomSelection objectAtIndex:0];
NSLog(test);

然而,错误日志没有输出,我无法弄清原因。
任何帮助或提示都将不胜感激。

你确定满足了添加字符串的特定条件吗?否则,也许你应该尝试使用NSLog(@"%@", test); - David Brunow
是的,条件已经满足。在 NSLog(test) 下面,我放置了:NSLog("Made It!"); 并且它正在被显示。 - SamBo
我需要初始化NSMutable数组并分配足够的空间吗?我觉得这就是addObject函数的作用,所以我不需要这样做。 - SamBo
@David Brunow 在发表任何评论或答案之前,请先阅读问题... 这个人没有分配“NSMutableArray *randomSelection;”,所以他怎么能期望得到数组对象... - Sunil Targe
6个回答

68

我认为你忘记为数组分配内存了。所以请尝试这样做:

NSMutableArray *randomSelection = [[NSMutableArray alloc] init];
[randomSelection addObject:@"string1"];
NSString *test = [randomSelection objectAtIndex:0];
NSLog(test);

@SamBo 确实忘记分配内存并初始化。现在数组被声明,但未定义。 - ophychius
@ophychius 也遇到了同样的问题。至少现在我知道需要先为数组分配内存。但是有没有更通用的方法来指定只想在数组中添加字符串呢? - Lehlohonolo_Isaac

5
NSMutableArray *randomSelection =  [[NSMutableArray alloc]init];
[randomSelection addObject:@"string1"];

你需要先分配内存。


1
对我有用..谢谢伙计.. :) - JIGAR

2

首先使用以下语句分配数组,然后在其中放置对象。

NSMutableArray *randomSelection =  [[NSMutableArray alloc] init];
[randomSelection addObject:[NSString stringWithFormat:@"String1"]];
[randomSelection addObject:[NSString stringWithFormat:@"String2"]];
NSLog(@"Array - %@", randomSelection);

这将绝对解决你的问题。

1

试试这个:

NSMutableArray *randomSelection = [[NSMutableArray alloc]init]; 
[randomSelection addObject:@"string1"];

1
只需分配您的NSMutableArray。这样就可以解决您的问题了。

0

Swift:

var randomSelection: [AnyObject] = [AnyObject]()
randomSelection.append("string1")
let test: String = randomSelection[0] as! String
print(test)

或者

let array : NSMutableArray = []
array.addObject("test String")
print(array)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接