簡體   English   中英

從plist數組創建NSArray

[英]Create NSArray from plist array

我需要從plist數組中提取數據並將其放入NSArray中。 但這似乎不起作用。

這是我的主文件:

NSString *path = [[NSBundle mainBundle] pathForResource:@"htmlData" ofType:@"plist"];
NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];

dictionary = tempDictionary;
[tempDictionary release];

NSMutableArray *nameArray = [[NSMutableArray alloc] init];
nameArray = [dictionary objectForKey:@"tagName"];

self.sitesArray = nameArray;

[nameArray release];

我的plist文件。 命名:htmlData.plist

<plist version="1.0">
<dict>
    <key>tagName</key>
        <array>
            <string>&lt;html&gt;</string>
            <string>&lt;body&gt;</string>
        </array>
</dict>
</plist>

它應該將self.sitesArray設置self.sitesArray等於@"<html>", @"<body>, nil;但是它不起作用。

首先,要了解dictionarytempDictionary指向同一個對象,並且釋放該對象后將無法訪問它。 因此,當您執行[tempDictionary release] ,將[tempDictionary release]字典。 然后就不能通過dictionary指針訪問它。

對於此代碼,請嘗試:

NSString *path = [[NSBundle mainBundle] pathForResource:@"htmlData" ofType:@"plist"];
NSDictionary *dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];  
self.sitesArray = [dictionary objectForKey:@"tagName"];
[dictionary release];

您對sitesArray設置器應保留該數組,否則對[dictionary release]的調用將釋放該數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM