【发布时间】:2011-06-16 01:03:38
【问题描述】:
我刚刚搜索了我的特定问题,虽然答案很接近,但我无法理解答案......所以我需要一些帮助。
我想用一组从 JSON 字符串解析的字典对象填充一个数组(我想是 NSMutableArray)......我得到的字典部分,我得到的 JSON 解析,但是当我尝试把这些对象放入 NSMutableArray 和 NSLog 它我得到(空)...这是我的步骤(以一般方式)
编辑 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 -
然后我在我的 .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. -
在我使用 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]; } } 当我尝试 NSLog (@"my final array is %@", newFinalArray) 时,我得到 (null)。
我可能在这里遗漏了一些东西。我试图在最后添加“nil”。我对此有点新/绿色,所以如果有人可以伸出援助之手,让我知道如何用这些字典对象填充我的 newFinalArray,我将不胜感激。
【问题讨论】:
-
只是一个提示:永远不要“是的,无论如何”警告,尤其是当您在附近遇到问题时。很有可能(在这种情况下)它正指向你错误的方向。许多专业人士使用编译器标志将警告视为硬错误,因此他们不能忽略它们。
-
(我从来不这样做,只是我不相信警告与我的问题有关),但感谢提醒:)
-
是的,这是非常相关的 :) 代码不可能按原样使用该行!
-
先修复所有警告,然后提出问题。
标签: iphone objective-c ipad nsmutablearray nsdictionary