В Swift 2, что именно изменилось в NSDictionary(objects, forKeys)
(Objective-C: dictionaryWithObjects: forKeys :) создание?В Swift 2, что изменилось в NSDictionary?
Apple's prerelease documentation был особенно бесполезным, учитывая, что существует только код Obj-C. Несмотря на небольшое, но очевидное изменение в предоставленном фрагменте, я не говорю obj-c и пока не понял смысла изменения.
Вот код для вас, ребята:
videoDataOutput.videoSettings = NSDictionary(objects: NSNumber(kCVPixelFormatType_32BGRA), forKeys: (kCVPixelBufferPixelFormatTypeKey))
//Working old Swift code; missing argument for parameter 'count' in call on Swift 2
+ (instancetype)dictionaryWithObjects:(NSArray *)objects
forKeys:(NSArray *)keys
//Old Obj-C code
+ (instancetype nonnull)dictionaryWithObjects:(NSArray<ObjectType> * nonnull)objects
forKeys:(NSArray<id<NSCopying>> * nonnull)keys
//New Obj-C code
Я читал в другом месте, что ненулевая должна способствовать совместимости с Swift, но как насчет <ObjectType>
? А что такое id
?
@Update Исправлен быстр код из NSDictionary(objectsAndKeys:)
в NSDictionary(objects: , forKeys:)
Как вы это исправить? NSDictionary (объект: kCVPixelFormatType_32BGRA as NSNumber, forKey: kCVPixelBufferPixelFormatTypeKey как NSString) дает мне «OSType» не конвертируется в «NSNumber» –
@PauloCesar Я только что закончил использование литерала 'Dictionary', как объяснено в конце выбранного ответа –
Это также дает мне ошибку на Xcode beta 5. В конце концов было просто исправить это: [kCVPixelBufferPixelFormatTypeKey: Int (kCVPixelFormatType_32BGRA)] –