在Lion / Xcode 4.3.1中debugging的ShareKit方法?
我最近使用iOS 5 SDK升级到了Lion和Xcode 4.3.1,并且共享库ShareKit被破坏 – 它使用方法调整它的电子邮件处理程序。 显然,苹果已经禁止或至less试图逐步淘汰方法。
ShareKit导入一个不再存在的文件</usr/include/objc/objc-class.h>
,并定义自己的方法SHKSwizzle
方法SHKSwizzle
。 它使用这个来改变MFMailComposeViewController
的viewDidDisappear:
方法如下:
SHKSwizzle([MFMailComposeViewController class], @selector(viewDidDisappear:), @selector(SHKviewDidDisappear:));
你认为什么是解决这个问题的最好和最简单的方法?
即使在最新的XCode和iOS SDK上,我也从来没有经历过方法调整相关的错误。 我使用ShareKit 2.0 。 虽然方法swizzling是我认为应该避免的事情。
如果我记得好的话,调用的方法是viewDidDisappear。 看看它做了什么。 在iOS 5中,您可以使用完成块来实现相同的function- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
。
只要改变你closuresviewController的方法- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
可能就足够了。
这只是一个想法,你可能会摆脱方法swizzle。
混合只是用于电子邮件共享。 你自己使用MFMailComposeViewController,并从ShareKit(它在SHK.m)中去掉混合代码。
- iOS 8 beta – 今天扩展不能识别embedded式框架
- iOS程序在单个UIViewController中使用多个UITableView
- 使用Safari和HTML5在iPhone上进行录音
- 在目标视图控制器中获取segue的发送者
- 我无法成功将UINavigationBar的barTintColor设置为clearColor
- Google Drive Picker(JavaScript)无法移动友好/响应
- {error =“invalid_request”; “error_description”=“必需的参数丢失:grant_type”; }迅速
- meteorcordova生产
- 如何以编程方式lockingiPhone屏幕?