Xcode Assistance with Coding

Discussion in 'Web Design and Development' started by sebbiedesigns, Jun 22, 2015.

  1. sebbiedesigns macrumors newbie

    sebbiedesigns

    Joined:
    Jun 22, 2015
    #1
    Hi All,

    I am trying to figure out how to do an extension for a html file. I'm new to coding and Xcode and trying to create an app but I have enough experience in coding to understand what goes where and why.

    The problem I'm facing is that I need to add an extension to a html file; example (index.html?lc=uk) instead of (index.html).

    I've created a interface and all the other information required but I can't seem to get this part to work. The coding I'm using on the ViewController.m is;

    Code:
    [super viewDidLoad];
        NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"354"];
        NSURL *url = [NSURL fileURLWithPath:path];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [webview loadRequest:request];

    I've tried adding to the (pathForResource) @"index.html?lc=uk" but when I test the app it doesn't work and gives me an error.

    Can someone give me a idea on what I need to do?

    Kind Regards,
    Seb
     
  2. superscape macrumors 6502a

    superscape

    Joined:
    Feb 12, 2008
    Location:
    East Riding of Yorkshire, UK
    #2
    Hi Seb,

    I'm not 100% sure what you're trying to do. I assume the file index.html exists in the directory you're looking in. Are you trying to rename the file, or do you just want an NSString with the filename and the query string appended?

    r.
     
  3. sebbiedesigns thread starter macrumors newbie

    sebbiedesigns

    Joined:
    Jun 22, 2015
    #3
    Hi superscape,

    Sorry if I sound like a noob, I'm new to coding xD.

    What I'm trying to add an extension to a index file. So I want to add to the index.html file (?lc=uk) so it should look like this (index.html?lc=uk).

    Code:
    @implementation ViewController
    @synthesize webview;
    
    - (void)viewDidLoad {
       
        [super viewDidLoad];
        NSString *path = [[NSBundle mainBundle] pathForResource:@"index?lc=uk" ofType:@"html" inDirectory:@"354"];
        NSURL *url = [NSURL fileURLWithPath:path];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [webview loadRequest:request];
       
    }
    The error code i'm getting is this;
    Code:
    2015-06-22 12:48:53.845 UST Demo[3999:1153643] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
    *** First throw call stack:
    (
        0   CoreFoundation                      0x008d0746 __exceptionPreprocess + 182
        1   libobjc.A.dylib                     0x00559a97 objc_exception_throw + 44
        2   CoreFoundation                      0x008d066d +[NSException raise:format:] + 141
        3   Foundation                          0x0010edfe -[NSURL(NSURL) initFileURLWithPath:] + 139
        4   Foundation                          0x0010ed58 +[NSURL(NSURL) fileURLWithPath:] + 68
        5   UST Demo                            0x000768d5 -[ViewController viewDidLoad] + 213
        6   UIKit                               0x00df3da4 -[UIViewController loadViewIfRequired] + 771
        7   UIKit                               0x00df4095 -[UIViewController view] + 35
        8   UIKit                               0x00ce5e85 -[UIWindow addRootViewControllerViewIfPossible] + 66
        9   UIKit                               0x00ce634c -[UIWindow _setHidden:forced:] + 287
        10  UIKit                               0x00ce6648 -[UIWindow _orderFrontWithoutMakingKey] + 49
        11  UIKit                               0x0c5c9028 -[UIWindowAccessibility _orderFrontWithoutMakingKey] + 77
        12  UIKit                               0x00cf49b6 -[UIWindow makeKeyAndVisible] + 80
        13  UIKit                               0x00c89ed8 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 3217
        14  UIKit                               0x00c8d422 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1639
        15  UIKit                               0x00ca693e __84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke + 59
        16  UIKit                               0x00c8c04a -[UIApplication workspaceDidEndTransaction:] + 155
        17  FrontBoardServices                  0x03232c9e __37-[FBSWorkspace clientEndTransaction:]_block_invoke_2 + 71
        18  FrontBoardServices                  0x0323272f __40-[FBSWorkspace _performDelegateCallOut:]_block_invoke + 54
        19  FrontBoardServices                  0x03244d7c __31-[FBSSerialQueue performAsync:]_block_invoke_2 + 30
        20  CoreFoundation                      0x007f2050 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 16
        21  CoreFoundation                      0x007e7963 __CFRunLoopDoBlocks + 195
        22  CoreFoundation                      0x007e77bb __CFRunLoopRun + 2715
        23  CoreFoundation                      0x007e6a5b CFRunLoopRunSpecific + 443
        24  CoreFoundation                      0x007e688b CFRunLoopRunInMode + 123
        25  UIKit                               0x00c8ba02 -[UIApplication _run] + 571
        26  UIKit                               0x00c8f106 UIApplicationMain + 1526
        27  UST Demo                            0x00076dfa main + 138
        28  libdyld.dylib                       0x02c5cac9 start + 1
    )
    libc++abi.dylib: terminating with uncaught exception of type NSException
    (lldb) 

    Not sure if it helps :(
     
  4. superscape, Jun 22, 2015
    Last edited: Jun 23, 2015

    superscape macrumors 6502a

    superscape

    Joined:
    Feb 12, 2008
    Location:
    East Riding of Yorkshire, UK
    #4
    Don't worry about sounding like a noob! I'm still learning on Obj-C myself. I'm not familiar with NSURLRequest and it's possible that someone smarter than me may weigh in here with a better way of doing this, but here's how I'd do it:

    Code:
       NSString *path = [[NSBundle mainBundle] pathForResource:@"index"ofType:@"html"inDirectory:@"354"];
       NSURL *url = [NSURL fileURLWithPath:path];
      NSString * theURLString=[NSString stringWithFormat:@"file://%@?foo=bar", url.path];
    NSURLRequest * theURLRequest = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:theURLString]];
      [[_theWebView  mainFrame]loadRequest: theURLRequest];
    

    ...assuming _theWebView is a property connected to your WebView.
     

Share This Page