dje*_*iej 1 iphone objective-c nsdictionary nsmutablearray ipad
我刚刚搜索了我的特定问题,虽然答案很接近,但我无法理解答案......所以我需要一些帮助.
我想用一组字典对象填充一个数组(NSMutableArray),这些字典对象是从JSON字符串解析的......我得到的字典部分,我得到的JSON解析,但当我尝试将这些对象放入NSMutableArray和NSLog我得到(null)...这是我的步骤(以一般方式)
编辑1: 我正在创建的数组名为NewFinalArray.它是一个NSMutableArray,在.h文件中声明并合成(现在是alloc'd和init'd),如DetailViewController的viewDidLoad方法中所述.它的内容将显示在UITableView中.
- 在DetailViewController中,我成功创建了一个普通的NSArray/NSMutableArray,并用我的UITableView中显示的值填充它.
- 在新场景中,我收到要通过JSON字符串显示的信息,这些字符串可以通过字典对象检索.我正在为iPHone/iPad使用Stig JSON库.我没有问题.
- 我想要做的是获取现有的字典对象(我可以从现有的数组中查看并查看)并将它们添加到一个新的数组中,用于在我的UITableview中显示菜单项.
我在我的.h文件中声明了我的mutableArray
@interface blah : ...,...,...{
NSMutableArray *newFinalArray;
// other vars and IBOutlets
}
@property (nonatomic, retain) NSMutableArray *newFinalArray;
// other @property and (IBAction) stuff
@end
Run Code Online (Sandbox Code Playgroud)然后我在我的.m文件中合成它...我甚至在viewDidLoad中分配/插入它(它是一个DetailViewController)
@synthesize this,that, newFinalArray; // keep track of newFinalArray, that's the one I want
- (void)viewDidLoad {
// other code
[[newFinalArray alloc] init]; // ya returns a warning, about not responding to alloc, but whatever (for now)
// I also tested of course without having to do that.
Run Code Online (Sandbox Code Playgroud)在我使用newFinalArray的方法中,该方法是一个自我调用的递归函数.每次调用时,都应该将字典对象添加到数组中(或者是吗?)
-(void)digTree:(NSArray *)array{
for (NSDictionary *dictionary in array){
// looping through the array
[self newFinalArray addObject:[dictionary]];
// more other code, and somewhere along the way I recurse
[self digTree:anotherArray];
}
}
Run Code Online (Sandbox Code Playgroud)当我尝试NSLog(@"我的最终数组是%@",newFinalArray)我得到(null).
我可能在这里遗漏了一些东西.我试着在最后添加"nil".我对此有点新鲜/绿色,所以如果有人可以伸出援助之手让我知道如何用这些字典对象填充newFinalArray,那将是非常感激的.
[[newFinalArray alloc] init];
应该:
newFinalArray = [[NSMutableArray alloc] init];
这条线也是错的:
[self newFinalArray addObject:[dictionary]];
它应该是:
[newFinalArray addObject:dictionary];
我注意到的第一件事是错的,它应该是:
newFinalArray = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad中.看看是否能修复它.看起来还有其他问题,所以打开警告,看看编译器还有什么警告提示.
字典是如何存储的?替代/可能更简单的方法可能是使用arrayWithObjects:.另外,使用addObject:时,不需要添加nil(实际上,你不能添加nil).
| 归档时间: |
|
| 查看次数: |
21795 次 |
| 最近记录: |