0

ノードの各辞書情報を保持する plist があります。すべてのノードには、経度、緯度、および他のノードへの接続があります。これは plist の一部です。

<array>
    <dict>
        <key>connections</key>
        <array>
            <integer>1</integer>
            <integer>3792</integer>
        </array>
        <key>latitude</key>
        <real>45.43876</real>
        <key>longitude</key>
        <real>12.3213</real>
    </dict>
    <dict>
        <key>connections</key>
        <array>
            <integer>0</integer>
            <integer>3793</integer>
        </array>
        <key>latitude</key>
        <real>45.43887</real>
        <key>longitude</key>
        <real>12.32122</real>
    </dict>

また、情報を保存するための IGNode というクラスがあります。こちらの .m 実装を参照してください。ここにヘッダーを表示する必要はないと思います。

#import <Foundation/Foundation.h>

@interface IGNode : NSObject

@property double lon;
@property double lat;
@property(nonatomic,strong) NSMutableArray *links;


@end

これまでのところ、緯度と経度を読み込んで作業しています。ただし、plist から接続配列を取得する方法がわかりません。私はstackoverflowで多くの例を見ましたが、私がしなければならないことにそれらを翻訳することはできません.

これは私がこれまでに持っているものです。

for (int i=0; i<plistData.count; i++) {
    NSDictionary *nodeDict = plistData[i];

    IGNode *node = [self.nodes objectAtIndex:i];

    node.lon = [[nodeDict valueForKey:@"longitude"] doubleValue];
    node.lat = [[nodeDict valueForKey:@"latitude"] doubleValue];

    // handle connections
    // ?

}

node.links に接続配列を格納するにはどうすればよいですか?

4

2 に答える 2

0

試す

for (NSDictionary *nodeDict in plistData) {

    IGNode *node = [self.nodes objectAtIndex:i];

    node.lon   = [nodeDict[@"longitude"] doubleValue];
    node.lat   = [nodeDict[@"latitude"] doubleValue];
    node.links = [nodeDict[@"connections"] mutableCopy];

}
于 2013-04-18T16:39:33.353 に答える