我正在开发一款需要从服务器检索某些数据的应用。我创建了一个“Server”类来处理所有的通信,并且有一个NSMutableArray * sessionData变量,我想存储来自服务器的数据(顺便说一下,这种方法是否正确?)。
我在NSArray中有数据。我希望NSMutableArray具有相同的NSArray内容,但我没有找到任何方法(sessionData = requestResult)。
(子问题:在使用之前我是否必须以某种方式初始化NSMutableArray?我只使用@property和@synthesize声明它)
答案 0 :(得分:5)
您尝试过的代码(来自评论)应该有效。它不起作用的原因是您的sessionData
是nil
。
您需要初始化sessionData
- 在初始值设定项中将其设置为[NSMutableArray array]
;那么你的代码
[sessionData removeAllObjects];
[sessionData setArray:result];
将完美运作。您甚至不需要第一行 - 第二行将sessionData
的内容替换为result
的内容。
答案 1 :(得分:4)
尝试这种方式:
sessionData = [result mutableCopy];
[result release];
或者
NSMutableArray *sessionData = [[NSMutableArray alloc] initWithContentsOfArray:result];
答案 2 :(得分:0)
或者,如果你能做到这一点:
NSMutableArray *session = [NSMutableArray arrayWithArray:someArray];
答案 3 :(得分:0)
在你的例子中是这样的:
NSArray *requestData = [[NSArray alloc] initWithObjects:@"3", @"4", @"5", nil];
_sessionData = [[NSMutableArray alloc] initWithArray:requestData];
[requestData release];
NSLog(@"%@", [sessionData objectAtIndex:0]); // 2012-03-30 15:53:39.446 <app name>[597:f803] 3
NSLog(@"count: %d", [sessionData count]); //2012-03-30 15:53:39.449 <app name>[597:f803] count: 3
答案 4 :(得分:0)
<强> 1。这种方法是否正确?
是
<强> 2。我没有找到任何办法(sessionData = requestResult)
许多人建议您可以使用mutableCopy
将requestResult
分配给sessionData
或者您可以使用arrayWithArray
作为一个答案。
第3。在使用?
之前,我是否必须以某种方式初始化NSMutableArray?是。如果要更改任何变量,则必须分配内存。