ShareKit метод, сверкающий в Lion / Xcode 4.3.1? - PullRequest
2 голосов
/ 28 марта 2012

Я недавно обновился до Lion и Xcode 4.3.1 с iOS 5 SDK, и библиотека совместного использования ShareKit не работает - она ​​использовала метод swizzling для своего обработчика электронной почты.Очевидно, у Apple забанен или, по крайней мере, предпринята попытка поэтапного отказа от метода swizzling.

ShareKit импортирует файл </usr/include/objc/objc-class.h>, который больше не существует, и определяет собственный метод swizzling метод SHKSwizzle.Он использует это, чтобы изменить MFMailComposeViewController viewDidDisappear: метод следующим образом:

SHKSwizzle([MFMailComposeViewController class], @selector(viewDidDisappear:), @selector(SHKviewDidDisappear:));

Какой, по вашему мнению, лучший и самый простой способ обойти это?

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Я никогда не сталкивался с ошибками, связанными с методом, даже на новейших XCode и iOS SDK.Я использую ShareKit 2.0 .Хотя, на мой взгляд, избегать использования метода swizzling

Метод swizzled - viewDidDisappear, если я хорошо помню.Посмотри, что он делает.На iOS 5 вы можете добиться того же, используя блок завершения в - (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion.

. Просто измените способ закрытия viewController в - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error.

Это всего лишь идея,как вы могли бы избавиться от метода Swizzle.

0 голосов
/ 29 марта 2012

Swizzling используется только для обмена электронной почтой. Используйте MFMailComposeViewController самостоятельно и удалите сверкающий код из ShareKit (он в SHK.m).

...