Xcode: How to add an integer to a NSURL - iphone

im kind of a noob on objective c and still are having trouble with some basics, in this case
I'm developing a pdf viewer on xcode, but im having a problem adding a integer to my NSUrl variable.
I have several pdf's on my site:
"http://mysite.com/1.pdf" "2.pdf" etc.
but the number of pdf files allways change so in order to avoid using a NSMutableArray with all the url sites what im trying to make is a NSURL variable like this:
int numpag = 1;
NSString *urlAddress = #"http://mysite.com/%d.pdf", numpag;
[pdfView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlAdress]]];
is there a correct way to do this?
Thanks in advance

Try;
NSString *urlAddress = [NSString stringWithFormat:#"http://mysite.com/%d.pdf",numpag];

int numpag = 1;
NSString *baseURLStr = #"http://mysite.com/";
NSURL *url = [NSURL URLWithString:[baseURLStr stringByAppendingFormat:#"%d.pdf", numpag]];

Related

UIlabel into a url?

i created a uilabel that contains my location data using this code,
longitudedata.text = [NSString stringWithFormat:#"longitude=%f", location.coordinate.longitude];
speeddata.text = [NSString stringWithFormat:#"speed=%f", [location speed] * 2.2369];
altitudedata.text = [NSString stringWithFormat:#"altitude=%f", [location altitude]];
but now i need to add these in a url so it will send that data to my server but everything iv tried dosnt work :(
NSURL *myURL = [NSURL URLWithString:[#"http://servername/ldtracker.aspx?id=3&" stringByAppendingString:longitudedata.text]];
and so on but this dosnt work, seems like iv tried everything
im a beginner to xcode, please help :)
UILabels dont handle urls, u need to give them a NSString.
label.text = [NSString stringWithFormat:#"http://servername/ldtracker.aspx?id=3&%#", longitudedata.text];
this should work if i understood ur problem correctly
NSURL *myURL = [NSURL URLWithString:[NSString stringWithFormat:#"http://servername/ldtracker.aspx?id=3&%#&%#%#",longitudedata.text,speeddata.text,altitudedata.text]];

UitextField and UIWebView interaction?

I put some text into the textField like: "Peter.at", and the UIwebview shows all correct (Mag. pharm. Peter MÜLLER)!
The Problem is when I type in the UItextField: "Püter.at", the UIwebView does nothing!
What is wrong? I think it is the "ü" but I don't know how to fix it!
Yep. I see what the problem is.
Your code should look like this:
NSString *preURL = #"";
NSString *middleURL = #".at";
NSString *fullURLString =
[[NSString stringWithFormat:#"%#%#%#",preURL,1.text,middleURL] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
NSURL * preparedURL = [[NSURL URLWithString:fullURLString];
[uiwebnamesearch loadRequest: [NSURLRequest requestWithURL: preparedURL]];
[uiwebnamesearch reloadInputViews];
The important change here is that you are "percent escaping" the string, to make it possible to use in a URL.
Here is the documentation for that [NSString stringByAddingPercentEscapesUsingEncoding:] method.

NSString to NSURL?

Trying to convert a string to NSURL and this is not happening.
barcodeTextLabel.text = foundCode.barcodeString;
urlToGrab = [NSString stringWithFormat:#"%#", foundCode.barcodeString]; // foundCode.barcodeString is an NSString
urlToGrab shows the following "error invalid CFStringRef"
This is how you create an NSURL from an NSString:
NSURL *url = [NSURL URLWithString:#"http://www.google.com"];
You can use following for creating the file path to url.
NSURL *yourURL = [NSURL fileURLWithPath:#"/Users/xyz/Desktop/abc.sqlite"];
If foundCode.barcodeString is the string you want as your URL, then (like the above answer) use the NSURL class method URLWithString:(NSString *).
Your code should look like:
NSURL urlToGrab = [NSURL URLWithString:foundCode.barcodeString];
Where is your error coming into to play? The way your code is, urlToGrab is an instance of NSString. I would imagine you would get an error like you described if you tried to make an HTTP request on an NSString rather than NSURL.
Swapnali patil's answer works, but I will add an explanation.
You will get a nil if the format of NSString doesn't fit file criteria for NSURL (file:///xxx/file.ext).
My needs were with loading a JPG image via URL file path to nsdata; NSURL * u=[[NSURL alloc] initWithString:fpath] returned nil, but NSURL *yourURL = [NSURL fileURLWithPath:fpath] as in mentioned answer worked. A URL for files will be file:///users/xxx/pic.jpg format and give disk access. NSURL * u=[[NSURL alloc] initWithString:(NSString*) ] will also give nil object if nsstring is web URL but if missing http://

NSURL with string

I have problem with NSURL. I am trying to create NSURL with string
code
NSString *prefix = (#"tel://1234567890 ext. 101");
NSString *dialThis = [NSString stringWithFormat:#"%#", prefix];
NSURL *url = [[NSURL alloc] initWithString:dialThis];
NSLog(#"%#",url);
also tried
NSURL *url = [NSURL URLWithString:dialThis];
but it gives null . what is wrong ?
Thanks..
Your problem is the unescaped spaces in the URL. This, for instance, works:
NSURL *url = [NSURL URLWithString:#"tel://1234567890x101"];
Edit: As does this..
NSURL *url2 = [NSURL URLWithString:[#"tel://1234567890 ext. 101"
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
Before passing any string as URL you don't control, you have to encode the whitespace:
NSString *dialThis = [prefix stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
// tel://1234567890%20ext.%20101
As a side note, iOS is not going to dial any extension. The user will have to do that manually.
From Apple URL Scheme Reference: Phone Links:
To prevent users from maliciously redirecting phone calls or changing the behavior of a phone or account, the Phone application supports most, but not all, of the special characters in the tel scheme. Specifically, if a URL contains the * or # characters, the Phone application does not attempt to dial the corresponding phone number.
Im not sure the "ext." in phone number can be replce by what value? but you can try like this,
NSString *prefix = [NSString stringWithString: #"tel://1234567890 ext. 101"];
NSString *dialThis = [NSString stringWithFormat:#"%#", prefix];
NSURL *url = [NSURL URLWithString:[dialThis stringByReplacingOccurrencesOfString:#" ext. " withString:#"#"]];
// it might also represent by the pause symbol ','.
you can go to find the ext. is equivalent to what symbol in the phone, then replace it.
but dunno it can be work in actual situation or not....
As with iOS 9.0,
stringByAddingPercentEscapesUsingEncoding:
has been deprecated.
Use the following method for converting String to NSURL.
let URL = "URL GOES HERE"
let urlString = URL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLFragmentAllowedCharacterSet())
If you've got something you think should be a URL string but know nothing about how URL strings are supposed to be constructed, you can use NSURL's URLWithDataRepresentation:relativeToURL: method. It parses the URL string (as bytes in an NSData) and percent-encodes characters as needed. Use the NSUTF8StringEncoding for best results when converting your NSString to NSData.
NSURL *url = [NSURL URLWithDataRepresentation:[#"tel:1234567890 ext. 101" dataUsingEncoding:NSUTF8StringEncoding] relativeToURL:nil];
NSLog(#"%#",url);
creates a URL with the string 1234567890%20ext.%20101
It attempts to do the right thing. However, for best results you should find the specification for the URL scheme you using and follow it's syntax to create your URL string. For the tel scheme, that is https://www.rfc-editor.org/rfc/rfc3966.
P.S. You had "tel://" instead of "tel:" which is incorrect for a tel URL.
Try this one, It works for me....
NSString *prefix = (#"tel://1234567890 ext. 101");
NSString *dialThis = [NSString stringWithFormat:#"%#", prefix];
NSURL *url = [NSURL URLWithString:[queryString stringByReplacingOccurrencesOfString:#" " withString:#"%20"]];
NSLog(#"%#",url);
Make an extension for use in any part of the project as well:
extension String {
var asNSURL: NSURL! {
return NSURL(string: self)
}
}
From now you can use
let myString = "http://www.example.com".asNSURL
or
myString.asNSURL

NSURL declaration /allocation showing error

I Have tried
NSString *alertTxt =textfieldName.text;
NSLog(#"Name: %#",alertTxt);
NSURL *urlAddress = [[NSURL alloc ] initWithString: #"%#/login/index.php",alertTxt];
error : too many argument to function initstring ..
the user will giv the url address to the alertText field and i hav to embed in to the webkit may i know the process how to make it !!!
Where im making mistake kindly help me out in this
Thanks
-initWithString: can only take a complete string, not a format string. To use -initWithString: you need to complete the string first.
NSString* urlString = [NSString stringWithFormat:#"%#/login/index.php", alertTxt];
NSURL* urlAddress = [[NSURL alloc] initWithString:urlString];
BTW, it may be more efficient to use -stringByAppendingString:.
NSString* urlString = [alertTxt stringByAppendingString:#"/login/index.php"];