Аргументы типа нельзя применять к непараметризованному классу BFTask в PFAnalytics и PFObject.

Я обновил свой проект до iOS 9, подфайл и все необходимые файлы, но он не собирается. Источник моего горя в следующем сообщении об ошибке:

Type arguments cannot be applied to non-parameterized class 'BFTask'

Это единственная отображаемая ошибка, но она появляется несколько раз как в PFAnalytics.h, так и, что более важно, в PFObject.h.

Может ли кто-нибудь сказать мне, что это значит, и, пожалуйста, предложите решение? Я надеюсь, что предоставил достаточно информации, но если нет, дайте мне знать!

**Обновление 01:** Я не смог опубликовать скриншот ошибок, потому что моей репутации недостаточно.

Примеры кода следующие: В PFObject.h и PFAnalytics.h везде есть следующее:

(BFTask PF_GENERIC(XXSOMECLASS *)*) someMethod; 

вылетает ошибка. Это не мой код, это PFObject.h и PFAnalytics.h, как указано выше. Ниже приведены примеры функций, выдающих ошибку PFObject.h.

- (BFTask PF_GENERIC(NSNumber *)*)saveInBackground; 
- (BFTask PF_GENERIC(NSNumber *)*)saveEventually;
- (BFTask PF_GENERIC(NSNumber *)*)deleteInBackground;
+ (BFTask PF_GENERIC(NSNumber *)*)saveAllInBackground:(PF_NULLABLE NSArray *)objects;
+ (BFTask PF_GENERIC(NSNumber *)*)deleteAllInBackground:(PF_NULLABLE NSArray *)objects;
// .... etc

при нажатии на знак остановки предлагается удалить PF_GENERIC(NSNumber *), что приводит к такому методу

 - (BFTask *)xxsomeMethod; 

но это не помогает, так как становится намного грязнее

Обновление 02: содержимое моего Podfile:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'

target: 'BMR' do 
    pod 'AFNetworking', '~> 2.6' 
    pod 'ParseFacebookUtils', '~> 1.8' 
    pod 'Parse' 
    pod 'ParseUI', '~> 1.1' 
    pod 'FBSDKCoreKit', '~> 4.6' 
    pod 'FBSDKLoginKit', '~> 4.6'
    pod 'JSQMessagesViewController', '~> 7.2'
    pod 'IDMPhotoBrowser', '~> 1.7' 
    pod 'RNGridMenu', '~> 0.1' 
    pod 'APHorizontalMenu', '~> 1.3' 
    pod 'ASIHTTPRequest', '~> 1.8' 
    pod 'AutoScrollLabel', '~> 0.4' 
    pod 'CJAMacros', '~> 2.1' 
    pod 'CrittercismSDK', '~> 5.3'
end

person user2565629    schedule 19.09.2015    source источник
comment
Недавно я открыл проблему с репозиторием Parse-iOS с та же проблема.   -  person radiovisual    schedule 20.09.2015
comment
Обновляли ли вы или устанавливали какое-либо новое программное обеспечение до появления такого поведения? Я обновил инструменты командной строки XCode, установил mongodb и yoman, затем заметил такое поведение в XCode. Это может быть не связано, но может помочь.   -  person radiovisual    schedule 21.09.2015
comment
Можете ли вы опубликовать содержимое вашего Podfile ?   -  person radiovisual    schedule 21.09.2015
comment
Podfile:# Раскомментируйте эту строку, чтобы определить глобальную платформу для вашего проекта. ' pod 'ParseUI', '~› 1.1' pod 'FBSDKCoreKit', '~› 4.6' pod 'FBSDKLoginKit', '~› 4.6' pod 'JSQMessagesViewController', '~› 7.2' pod 'IDMPhotoBrowser', '~› 1.7 ' pod 'RNGridMenu', '~› 0.1' pod 'APHorizontalMenu', '~› 1.3' pod 'ASIHTTPRequest', '~› 1.8' pod 'AutoScrollLabel', '~› 0.4' pod 'CJAMacros', '~› 2.1 ' pod 'CrittercismSDK', '~› 5.3' конец   -  person user2565629    schedule 21.09.2015
comment
Спасибо. Я добавил подфайл к вашему вопросу, чтобы его было легче читать.   -  person radiovisual    schedule 22.09.2015
comment
Благодарю. Извини за это   -  person user2565629    schedule 22.09.2015
comment
Без проблем. Есть ли шанс, что вы можете поделиться со мной своим проектом Xcode в частном порядке? Если вас беспокоит конфиденциальность, вы можете удалить все конфиденциальные данные, или я с радостью подпишу соглашение о неразглашении. Я хотел бы сравнить наши проекты и посмотреть, смогу ли я уловить сходство. Команда Parse не может найти причину, поэтому нам нужна дополнительная информация.   -  person radiovisual    schedule 22.09.2015
comment
при удаче? такая же проблема после обновления синтаксического анализа   -  person bmurmistro    schedule 23.09.2015
comment
@bmurmistro, пока не повезло, но я отправляю команде Parse урезанную версию моего проекта XCode, чтобы они могли посмотреть, что происходит. Вы можете следить за прогрессом на github. Может быть, вы присоединитесь к обсуждению на github и поможете нам решить проблему.   -  person radiovisual    schedule 23.09.2015
comment
@bmurmistro, вы готовы поделиться своим проектом с командой Parse? Чем больше у них данных, тем быстрее они смогут решить эту проблему.   -  person radiovisual    schedule 23.09.2015
comment
@radiovisual На данный момент я не могу поделиться, но могу сказать, что он сломался где-то между версиями 1.8.3 и 1.8.5. Откатываюсь на 1.8.3 и мне хорошо! Кроме того, я тоже использую какаоподы.   -  person bmurmistro    schedule 24.09.2015
comment
Я также хотел бы поделиться своим проектом с командой Parse.   -  person user2565629    schedule 24.09.2015
comment
Похоже, решение было найдено, и ответ, предоставленный Cyprian, может быть правильным ответом. Подробнее см. в описании проблемы на github. Информация.   -  person radiovisual    schedule 24.09.2015


Ответы (3)


Убедитесь, что у вас нет дублированной версии Bolts.framework.

Если вы используете и Parse SDK, и Facebook SDK, вы столкнетесь с проблемой, когда Parse SDK содержит более старую версию Bolts (в настоящее время 1.1.5), а FB SDK имеет самую новую версию Bolts SDK (>= 1.2.2).

Как только вы удалите старую версию Bolt.framework, поставляемую с Parse SDK, все будет в порядке.

Чтобы проверить, какая у вас версия Bolts.SDK, просто перейдите к файлу Bolts.framework, щелкните правой кнопкой мыши и выберите «Получить информацию».

person Cyprian    schedule 20.09.2015
comment
Я не устанавливаю фреймворки вручную. Я устанавливаю синтаксический анализ черезcocopods. Вот соответствующие модули, которые я добавляю: модуль «ParseFacebookUtils», «~› 1.8» модуль «Parse» модуль «ParseUI», «~› 1.1» модуль «FBSDKCoreKit», «~› 4.6» модуль «FBSDKLoginKit», «~ › 4.6' Когда я запускаю модуль установки (или обновления), он добавляет текущую версию Bolts Using Bolts (1.2.2). Я все еще получаю те же ошибки. - person user2565629; 21.09.2015
comment
На самом деле это правильный ответ. Если вы загружаете FacebookSDK из файлов фреймворка И вы загружаете Facebook-iOS-SDK через Cocoapods, то есть большая вероятность, что у вас есть две версии Bolts.framework, у меня это сработало. Я загружал FacebookSDK и Facebook-iOS-SDK через Cocoapods, поэтому, как только я удалил файл: FacebookSDK/Bolts.framework ошибки исчезли. См. проблему на github для получения дополнительной информации. - person radiovisual; 24.09.2015
comment
Вот мое решение, любезно предоставленное Никитой Луценко. СПАСИБО! Если вы дважды проверите настройку сборки Framework Search Paths для цели BMR, вы увидите, что путь /Users/xxxxx/Documents/FacebookSDK существует. Даже если вы не добавили его явно в свой проект — Xcode все равно будет искать фреймворки в этой папке, и если он что-нибудь найдет (скажем, в нашем случае устаревшую версию Bolts.framework) — он попытается использовать это в некоторых случаи. Решение вашей проблемы — удалите эту строку из Framework Search Paths или удалите Bolts.framework из любого места в этой папке. - person user2565629; 11.10.2015

У вас есть два Bolts.framework, старый из FacebookSDK и новый из Parse. Итак, перейдите в папку FacebookSDK, из которой вы добавили FacebookSDK в xcode, и удалите файл Bolts.framework. Держите новый Bolts.framework и теперь все будет хорошо.

Если вы все еще не можете найти старый Bolts.framework, найдите файл класса, показывающий ошибку, щелкните его правой кнопкой мыши и выберите «Показать в искателе» и отследите папку facebook из искателя, убедитесь, что он находится в папке Facebook SDK, и удалите файл Bolts.framework. Убедитесь, что вы не удалили новый Bolts.framework, который вы добавили из папки Parse SDK.

person Joshua Cleetus    schedule 26.10.2015

У меня была такая же проблема (потратил несколько часов на изучение того, что происходит). Я перепутал старый фреймворк FacebookSDK с тем, который установил через Cocoapods.

  1. Проверьте следующий путь ~/Documents/FacebookSDK, чтобы увидеть, нет ли устаревшего SDK.
  2. Удалите любой импорт Facebook SDK #import <FacebookSDK/FacebookSDK.h>
  3. Установите его черезcocopods
    pod 'FBSDKCoreKit' pod 'FBSDKLoginKit' pod 'FBSDKShareKit'
    или добавьте новый фреймворк вручную.
person Mike.R    schedule 15.11.2015