【发布时间】:2014-02-03 17:36:03
【问题描述】:
我正在尝试为 Pinterest SDK 创建绑定:
http://developers.pinterest.com/ios/
大部分 API 都有效; CanPinWithSDK 按预期正确返回 true / false。
但是CreatePinWithImageURL 总是崩溃。栈顶是这样的:
Feb 3 17:28:45 UK-IT-IPD-D0004 PinterestSDKDemo[8992] <Error>: Stacktrace:
Feb 3 17:28:45 UK-IT-IPD-D0004 PinterestSDKDemo[8992] <Error>: at <unknown> <0xffffffff>
Feb 3 17:28:45 UK-IT-IPD-D0004 PinterestSDKDemo[8992] <Error>: at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr_IntPtr_IntPtr (intptr,intptr,intptr,intptr,intptr) <0xffffffff>
Feb 3 17:28:45 UK-IT-IPD-D0004 PinterestSDKDemo[8992] <Error>: at PinterestSDK.Pinterest.CreatePinWithImageURL (MonoTouch.Foundation.NSUrl,MonoTouch.Foundation.NSUrl,string) [0x0005f] in /Users/Alasdair/code/PinterestSDKBinding/PinterestSDKBinding/obj/Debug/ios/PinterestSDK/Pinterest.g.cs:154
绑定如下所示:
[Export ("createPinWithImageURL:sourceURL:description:")]
void CreatePinWithImageURL (NSUrl imageURL, NSUrl sourceURL, string descriptionText);
生成的代码如下所示:
[Export ("createPinWithImageURL:sourceURL:description:")]
[CompilerGenerated]
public virtual void CreatePinWithImageURL (NSUrl imageURL, NSUrl sourceURL, string descriptionText)
{
if (imageURL == null)
throw new ArgumentNullException ("imageURL");
if (sourceURL == null)
throw new ArgumentNullException ("sourceURL");
if (descriptionText == null)
throw new ArgumentNullException ("descriptionText");
var nsdescriptionText = NSString.CreateNative (descriptionText);
if (IsDirectBinding) {
MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr_IntPtr_IntPtr (this.Handle, selCreatePinWithImageURLSourceURLDescription_Handle, imageURL.Handle, sourceURL.Handle, nsdescriptionText);
} else {
MonoTouch.ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr_IntPtr_IntPtr (this.SuperHandle, selCreatePinWithImageURLSourceURLDescription_Handle, imageURL.Handle, sourceURL.Handle, nsdescriptionText);
}
NSString.ReleaseNative (nsdescriptionText);
}
我的应用代码如下所示:
Pinterest pinterest = new Pinterest ("1234", "prod");
NSUrl imageUrl = new NSUrl(@"http://static.bbci.co.uk/frameworks/barlesque/2.59.12/orb/4/img/bbc-blocks-dark.png");
NSUrl sourceUrl = new NSUrl(@"http://www.bbc.co.uk");
pinterest.CreatePinWithImageURL (imageUrl, sourceUrl, "description");
一碰到void_objc_msgSend_IntPtr_IntPtr_IntPtr,它就会毫无例外地崩溃
我在我的info.plist 中设置了客户端 ID(从他们的演示应用中复制,在目标 C 中运行良好)。
有什么想法吗?有没有人为这个 SDK 成功创建了绑定?
【问题讨论】:
标签: c# ios sdk xamarin.ios pinterest