作者dokinkon (doki)
看板MacDev
標題Re: [問題] plist與NSDictionary
時間Fri Aug 12 08:58:59 2011
試著回答看看,有錯請指正
NSArray* tmpArray = (NSArray*)[item objectForKey:@"Faculty"];
NSMutableArray* facultyArray = [tmpArray copy];
這裡的item是沿用您之前從 array得到的NSDictionary
plist本身照您目前post的內容看起來是正確的,
若是有問題的話, xcode應該會報錯
===================================================
第一次用Ptt寫code好不習慣阿XD
※ 引述《yueyajbdt (碳烤焦貓)》之銘言:
: 我有plist內容如下
: Key Type Value
: item 0 (Dict)
: Year (String) 2011
: Faculty (Array)
: item 0 (String) 商學院
: item 1 (String) 理工學院
: item ....
: 我用NSMutableArray *array = [NSMutable arrayWithContentsOfFile:path];
: NSDictionary *item = [array objectAtIndex:0];
: NSMutableArray *year = [[NSMutableArray alloc] init];
: [year addObject:[array objectForKey:@"Year"];
: 可以成功把2011加入year array裡
: 所以我想如法泡製把Faculty的內容加入faculty array裡面
: 用NSLog去跑可以得到商學院跟理工學院等等等..
: 但實際上運行卻會出錯,請問我該怎麼正確的加進去,或者我plist寫錯了?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.199.136
1F:推 yueyajbdt:感謝大大,這樣子做可以,但為什麼直接等於會不行,還要 08/12 19:09
2F:→ yueyajbdt:放一個ARRAY在COPY.. 08/12 19:09
3F:推 yueyajbdt:D大我更新了一下問題,麻煩可以請你看一下嗎 08/12 20:03
4F:→ uranusjr:這樣不行吧, 要 mutableCopy... 08/12 21:03
5F:→ dokinkon:感謝指正:) 08/14 15:08
6F:→ dokinkon:因為看您的需求,您會改變Array內的值 08/14 21:01
7F:→ dokinkon:但是NSArray是immutable(不可改變的) 08/14 21:02
8F:→ dokinkon:所以需要額外配置一個MutableArray搭配mutable copy 08/14 21:03
9F:→ dokinkon:而從plist直接抓出來的都是immutable 08/14 21:03