Сравните kCFFTPResourceType с числом
Я пишу систему загрузки 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
}
}
* Моя проблема заключается в неправильном сравнении, как я могу написать это для работы?
2 ответа
Решение
[file objectForKey:]
не вернет int
, Возвращает NSNumber
(ака CFNumberRef
).
Демо-версия:
NSNumber * n = [file objectForKey:(id)kCFFTPResourceType];
const int i = n.intValue;
if (8 == i) {
[filesList addObject:[file objectForKey:(id)kCFFTPResourceName]];
}
Это может быть полезно, когда требуются подробности kCFFTPResourceType.