我在我的应用程序中使用了UIView和CoreGraphics动画但是当我编译时,以下行给了我错误:
CGAffineTransform * baseDockTransform =(CGAfflineTransform *)[[[%c(SBIconController)sharedInstance] dock] transform];
以下是错误日志:
Tweak.xm:156:警告:找到名为'-transform'的多个方法 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:156:警告:使用' - (CGAffineTransform)转换' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CALayer.h:153:警告:还找到' - (CATransform3D)转换' Tweak.xm:156:错误:没有匹配函数来调用'UIView :: UIView(CGAffineTransform)'
编译器不知道使用哪种方法。我怎样才能解决这个问题?
由于
答案 0 :(得分:1)
确保你正确地投射一切。 [object dock]可能会返回一个可以从中调用transform的对象,但除非你正确地转换它,否则编译器会抱怨。
尝试:
Instance *sbInstance = [%c(SBIconController) sharedInstance];
UIView *transformedView = [sbInstance dock]; // assuming that dock returns an instance of UIView
CGAffineTransform backDockTransform = transformView.transform;
以这种方式做事情不会有太大的开销,而且更容易阅读正在发生的事情。