【发布时间】:2013-01-21 17:10:51
【问题描述】:
我在这里的第二行代码出现异常。我从 ViewDidLoad 中调用此代码。 _assetURLs[page](在这种情况下 page 为 0),正在返回一个存在且已被检索到的 assetsURL。
UIImage img;
img = new UIImage(new MonoTouch.CoreImage.CIImage(_assetURLs[page]));
有什么想法吗?
这是一个例外: (发生异常是因为 --> new UIImage(...) 而不是因为 new MonoTouch.CoreImage.CIImage(_assetURLs[page])
{MonoTouch.Foundation.MonoTouchException: 抛出 Objective-C 异常。名称:NSInvalidArgumentException 原因:-[UIImage initWithCIImage]:无法识别的选择器在 MonoTouch.ObjCRuntime.Messaging:IntPtr_objc_msgSend_IntPtr (intptr,intptr,intptr) at MonoTouch.UIKit.UIImage..ctor ( MonoTouch.CoreImage.CIImage ciImage) [0x00027] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIImage.g.cs:376 at ScrollViewPageViewExample.Viewer.LoadPageContent (Int32 page) [0x0002e] in /Users/user1/ Dropbox/Dev/ScrollViewPageViewExample/ScrollViewPageViewExample/Viewer.cs:148 }
【问题讨论】:
-
我不是一个单点触控用户,但“新”究竟是什么意思,因为在我看来,您正在尝试两次初始化同一个 UIImage。试试 UIImage img = new UIImage(new MonoTouch.CoreImage.CIImage(_assetURLs[page]));
-
new,创建对象的一个新实例。如果我没记错的话,这类似于在 obj-c 中初始化一个对象。这里的语法是正确的。作为初始化的一部分,我首先使用资产 URL 初始化 CIImage,以获取该资产图像 URL。然后我用它初始化一个新的 UIImage(作为参数传递给 C# 中的构造函数)
-
该代码在哪里执行?设备或模拟器?并使用哪个版本的 iOS?即该选择器在 5.0 中是新的(4.3 会抛出 ObjC 异常)。
标签: ios xamarin.ios