1

私はFTPダウンロードシステム、リスト機能を書いています:

NSLog(@"%@", listDir.filesInfo);

サーバー上に自分のファイルが表示されます:

{
    kCFFTPResourceGroup = group;
    kCFFTPResourceLink = "";
    kCFFTPResourceModDate = "2012-11-04 15:49:00 +0000";
    kCFFTPResourceMode = 511;
    kCFFTPResourceName = "eyeview__0000_sport_general.jpg";
    kCFFTPResourceOwner = owner;
    kCFFTPResourceSize = 169790;
    kCFFTPResourceType = 8;
},
    {
    kCFFTPResourceGroup = group;
    kCFFTPResourceLink = "";
    kCFFTPResourceModDate = "2012-11-04 15:49:00 +0000";
    kCFFTPResourceMode = 511;
    kCFFTPResourceName = "eyeview__0001_sport_reading.jpg";
    kCFFTPResourceOwner = owner;
    kCFFTPResourceSize = 224795;
    kCFFTPResourceType = 8;
},

次にやりたいことは次のとおりです。

for (NSDictionary *file in listDir.filesInfo)
    {
        NSLog(@"%@", [file objectForKey:(id)kCFFTPResourceName]); //Prints the file name

        if ([file objectForKey:(id)kCFFTPResourceType]==8) //*My problem
        {
            [filesList addObject:[file objectForKey:(id)kCFFTPResourceName]]; //Works perfectly in case outside the if function
        }


    }

*私の問題は比較が間違っていることです。どうすれば動作するように書くことができますか?

4

2 に答える 2

1

[file objectForKey:]を返しませんintNSNumber(別名)を返しますCFNumberRef

デモ:

NSNumber * n = [file objectForKey:(id)kCFFTPResourceType];
const int i = n.intValue;
if (8 == i) {
  [filesList addObject:[file objectForKey:(id)kCFFTPResourceName]];
}
于 2012-11-08T09:13:54.160 に答える
0

これは、kCFFTPResourceType の詳細が必要な場合に役立ちます。

kCFFTPResourceType の詳細

于 2014-09-20T13:08:23.220 に答える