"... но [размер testImages] возвращает (0,0)"
Всегда учитывайте, возвратил ли в какой-то момент в вашем коде какой-либо метод или вызов nil
там, где вы этого не ожидали. Затем вернитесь к коду и выясните, где ваш код (или ваши предположения) пошли не так.
NSURL *testImageUrl = [NSURL URLWithString:@"file:///foo/testImage.png"];
NSData *imageData = [testImageUrl resourceDataUsingCache:NO];
NSImage *testImages = [[NSImage alloc] initWithData:imageData ];
NSSize size = [testImages size];
Если по какой-либо причине вызов URLWithString:
не удался, он вернет nil
. Отправка сообщения -resourceDataUsingCache:
на nil
в основном приведет к nil
(оно просто игнорируется). Попытка создать NSImage
с передачей nil
для параметра данных вернет nil
. И отправка -size
сообщения на nil
в основном приведет к nil
, что будет равно {0, 0}
.
Итак, перепроверьте, чтобы убедиться, что ваши сообщения не просто отправлялись на ноль.
Еще одна заметка, но вы обычно используете +fileURLWithPath:
при создании файлов NSURL
s и +URLWithString:
при создании URL-адресов других типов.