4

QLPreviewControllerクラスのpreviewItemTitleプロパティを設定する方法がわかりません。このクラスのiPhone開発者向けドキュメントには、そのプロパティは@property (readonly)設定できないことを意味すると記載されているため、少し奇妙に思えます。

何か案は。ありがとう

私のコード:

QLPreviewController *preview = [[QLPreviewController alloc] init];
    [preview setDataSource:self];

    [self presentModalViewController:preview animated:YES];
4

1 に答える 1

16

QLPreviewController には previewItemTitle プロパティがありません。QLPreviewItemプロトコルのことです。

「読み取り専用」とは、プロパティを介して設定できないことを意味します(オーバーライドされない限り)。setPreviewItemTitle:つまり、プロパティはメソッドを宣言しません。これはプロトコルにとって理にかなっています。コントローラーは、プレビュー項目のタイトルを設定できることを想定していません。

最も基本的なプレビュー アイテムの場合、次のようなものを使用できます。

@interface BasicPreviewItem : NSObject<QLPreviewItem>
{
}

@property (nonatomic, retain) NSURL * previewItemURL;
@property (nonatomic, copy) NSString* previewItemTitle;

@end

@implementation BasicPreviewItem

@synthesize previewItemURL, previewItemTitle;

-(void)dealloc
{
  self.previewItemURL = nil;
  self.previewItemTitle = nil;
  [super dealloc];
}

@end

ただし、プロトコルのポイントは、任意のクラスを取り-(NSURL*)previewItemURL-(NSString*)previewItemTitleメソッドを追加できるようにすることです (たとえば、音楽プレーヤーがあれば、これらのメソッドを「トラック」クラスに追加して、トラックをプレビューできるようにすることができます)。

于 2010-09-25T00:57:32.007 に答える