Json和Bundle资源Xcode

时间:2013-02-19 02:03:51

标签: objective-c xcode json bundle

我可以像这样访问和显示Xcode包中的文件:

NSString *file = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"pdf"];

现在我要做的是使用这个JSON填写文件的名称,它会获取正确的名称:

self.localFileName = [BT_strings getJsonPropertyValue:self.screenData.jsonVars:@"localFileName":@""];

如何将这两件事放在一起,以便我可以使用JSON名称调用Bundled文件?

以下是整个事情:

//
//  ReaderDemoController.m
//  PDFViewer
//
//  Created by C. A. Beninati on 5/21/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
//BT imports
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <MediaPlayer/MediaPlayer.h>
#import "JSON.h"
#import "BT_strings.h"
#import "testapp_appDelegate.h"
#import "BT_fileManager.h"
#import "BT_color.h"
#import "BT_viewUtilities.h"
#import "BT_downloader.h"
#import "BT_item.h"
#import "BT_debugger.h"
#import "BT_viewControllerManager.h"

#import "ReaderDemoController.h"
#import "ReaderViewController.h"

@interface ReaderDemoController ()<ReaderViewControllerDelegate>

@end

@implementation ReaderDemoController
@synthesize localFileName;


- (void)viewDidLoad
{ [BT_debugger showIt:self:@"ZZZZZZZZZZ!!!"];
    [super viewDidLoad];

    self.localFileName = [BT_strings getJsonPropertyValue:self.screenData.jsonVars:@"localFileName":@""];

    self.localFileName = @""; // added this to make it work!!

    NSString *file=[[NSBundle mainBundle]pathForResource:self.localFileName ofType:@"pdf"];

    ReaderDocument *document = [ReaderDocument withDocumentFilePath:file password:nil];

    if (document != nil)
    {
        ReaderViewController *readerViewController = [[ReaderViewController alloc] initWithReaderDocument:document];
        readerViewController.delegate = self;

        readerViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
        readerViewController.modalPresentationStyle = UIModalPresentationFullScreen;

        [self presentModalViewController:readerViewController animated:YES];
    }

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}




- (void)dismissReaderViewController:(ReaderViewController *)viewController {
    [self dismissModalViewControllerAnimated:YES];
}

@end

1 个答案:

答案 0 :(得分:1)

如果您从“self.localFilename”获取正确的文件名,那么除了将其传递给您的文件之外,您无需执行任何操作:

NSString * file = [[NSBundle mainBundle] pathForResource:self.localFileName ofType:@“pdf”];