-1

我正在尝试使用 Plist 填充我的数组。这是我的 plist 文件,Menu.plist。

- 项目 0,类型:字典、值(1 项) - 标题、字符串、联系人

- 项目 1,类型:字典、值(1 项) - 标题、字符串、编辑

  - (void)viewDidLoad
    {
        [super viewDidLoad];
        NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Menu" ofType:@"plist"];
        self.menuArray = [NSMutableArray arrayWithContentsOfFile:plistPath];


    }

我正在尝试使用单元格联系人和编辑填充我的表格视图,但我的 menuArray 没有被加载,我检查了 NSLog 并且 *plist 正在获取路径,但在 self.menuArray 它仍然显示 0 个对象,而它应该是 2 个。我以前做过,效果很好,我不知道今天出了什么问题。有什么建议么???

4

3 回答 3

3

根据您的问题,plist 内容如下

通过 XCode 创建的 Plist

XML 格式

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>Title</key>
        <string>Contact</string>
    </dict>
    <dict>
        <key>Title</key>
        <string>Edit</string>
    </dict>
</array>
</plist>

如果是这种情况,请尝试以下

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Menu" ofType:@"plist"];
NSArray *menuDataArray = [NSMutableArray arrayWithContentsOfFile:plistPath];

NSLog(@"Plist Content Array = %@", menuDataArray);

输出

Plist Content Array = (
        {
        Title = Contact;
    },
        {
        Title = Edit;
    }
)

笔记:

  • 请检查您的 Plist 结构。
  • 数组分配初始化。
于 2013-07-30T11:31:28.497 回答
0

试试这个

- (void)viewDidLoad
    {
        [super viewDidLoad];
        self.menuArray=[[NSMutableArray alloc]init];
        NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Menu" ofType:@"plist"];
        self.menuArray = [NSMutableArray arrayWithContentsOfFile:plistPath];


    }

你必须分配 NSMutableArray。

于 2013-07-30T10:37:22.860 回答
0

你可以粘贴你的 plist 文件的内容吗?如果你想从 plist 创建数组,那么它应该是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>Brand A</string>
    <string>Brand B</string>
    <string>Brand C</string>
    <string>Brand D</string>
</array>
</plist>

在您的情况下,您可能尝试从基于字典的 plist 创建 NSArray。你应该使用:

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:plistPath];

如果该字典的某些对象是数组,您可以通过以下方式获取它:

NSArray *array = [dict objectForKey:@"KeyForSomeArray"];
于 2013-07-30T10:44:41.640 回答