3

Pinterest の Web サイトで基本的なチュートリアルを実行しようとしています。

ドキュメントと iOS SDK をダウンロードするためのリンクは、ドキュメントやサンプル コードを提供しません。そこにはバンドルしかありませんでした。

ここに私のviewcontroller.mファイルがあります

#import "ViewController.h"
#import <Pinterest/Pinterest.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIButton* pinItButton = [Pinterest pinItButton];
    [pinItButton addTarget:self
                    action:@selector(pinIt:)
          forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:pinItButton];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)pinIt:(id)sender
{
    Pinterest *pinterest = [[Pinterest alloc]initWithClientId:@"1431885" urlSchemeSuffix:@"pin1431885"];
    [pinterest createPinWithImageURL:@"http://www.warrenphotographic.co.uk/photography/bigs/10122-Silver-and-red-kittens-white-background.jpg" sourceURL:@"http://placekitten.com" description:@"Pinning from Pin It Demo"];
}

@end

私のコードはかなり簡単です。開発用のiPhoneで実行できず、スローし続けました:

2013-06-06 17:17:27.787 Pinterest Testing[9403:907] -[__NSCFConstantString absoluteString]: unrecognized selector sent to instance 0x1c86c
2013-06-06 17:17:31.626 Pinterest Testing[9403:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString absoluteString]: unrecognized selector sent to instance 0x1c86c'
*** First throw call stack:
(0x32f4d3e7 0x3ac48963 0x32f50f31 0x32f4f64d 0x32ea7208 0x1a9f9 0x1a71d 0x34e47087 0x34e4703b 0x34e47015 0x34e468cb 0x34e46db9 0x34d6f5f9 0x34d5c8e1 0x34d5c1ef 0x36a745f7 0x36a74227 0x32f223e7 0x32f2238b 0x32f2120f 0x32e9423d 0x32e940c9 0x36a7333b 0x34db02b9 0x19f4d 0x3b075b20)
libc++abi.dylib: terminate called throwing an exception
4

3 に答える 3

7

URL をNSStringオブジェクトとして送信しています。NSStringにはメソッドがありません-absoluteString。これは、クラッシュ ログが伝えていることです。

Pinterest メソッドの宣言 (Pinterest.h 内) は次のとおりです。

- (void)createPinWithImageURL:(NSURL *)imageURL
                    sourceURL:(NSURL *)sourceURL
                  description:(NSString *)descriptionText;

およびのNSURLではなく、オブジェクトを送信する必要があります。NSStringimageURLsourceURL

だからあなたの場合:

- (void)pinIt:(id)sender
{
    NSURL *imageURL     = [NSURL URLWithString:@"http://www.warrenphotographic.co.uk/photography/bigs/10122-Silver-and-red-kittens-white-background.jpg"];
    NSURL *sourceURL    = [NSURL URLWithString:@"http://placekitten.com"];

    Pinterest *pinterest = [[Pinterest alloc]initWithClientId:@"1431885" urlSchemeSuffix:@"pin1431885"];
    [pinterest createPinWithImageURL:imageURL
                           sourceURL:sourceURL
                         description:@"Pinning from Pin It Demo"];
}
于 2013-06-06T16:37:09.817 に答える
0

例外に対する回答はすでに与えられています。サンプル プロジェクトの場所を見つけました。https://pinterest-ota-builds.s3.amazonaws.com/PinItDemo.zipからダウンロードできます。

サンプル ファイルを見ると、urlSchemeSuffixURL スキームに が追加されていることがわかります。次のコードは、サンプル プロジェクトから取得したものです。

[[Pinterest alloc] initWithClientId:@"1234" urlSchemeSuffix:@"prod"]

これは、次の URL スキームをアプリに登録する必要があることを意味します: pin1234prod.

これにより、コールバックが機能することが確認されます。サフィックスなしで Pinterest クライアントを作成することもでき、コールバックは URL スキームでも機能します。pin1234

于 2013-06-20T11:02:27.813 に答える