---
title: "URLWithString:"
framework: foundation
role: symbol
role_heading: Type Method
path: "foundation/nsurl/urlwithstring:"
---

# URLWithString:

Creates and returns an NSURL object initialized with a provided URL string.

## Declaration

```occ
+ (instancetype) URLWithString:(NSString *) URLString;
```

## Parameters

- `URLString`: The URL string with which to initialize the NSURL object. Linked on or after iOS 17, this method parses URLString according to RFC 3986. Linked before iOS 17, this method parses URLString according to RFCs 1738 and 1808.

## Return Value

Return Value An NSURL object initialized with URLString. If the URL string was malformed or nil, returns nil.

## Discussion

Discussion important: For apps linked on or after iOS 17 and aligned OS versions, NSURL parsing has updated from the obsolete RFC 1738/1808 parsing to the same RFC 3986 parsing as NSURLComponents. This unifies the parsing behaviors of the NSURL and NSURLComponents APIs. Now, NSURL automatically percent- and IDNA-encodes invalid characters to help create a valid URL. To check if URLString is strictly valid according to the RFC, use the new [NSURL URLWithString:URLString encodingInvalidCharacters:NO] method. This method leaves all characters as they are and returns nil if URLString is explicitly invalid. For apps linked before iOS 17, this method expects URLString to contain only characters that are allowed in a properly formed URL. All other characters must be properly percent encoded. Any percent-encoded characters are interpreted using UTF-8 encoding. important: To create NSURL objects for file system paths, use fileURL(withPath:isDirectory:) instead.

## See Also

### Creating a URL object

- [init(string:)](foundation/nsurl/init(string:).md)
- [URLWithString:encodingInvalidCharacters:](foundation/nsurl/urlwithstring:encodinginvalidcharacters:.md)
- [init(string:encodingInvalidCharacters:)](foundation/nsurl/init(string:encodinginvalidcharacters:).md)
- [URLWithString:relativeToURL:](foundation/nsurl/urlwithstring:relativetourl:.md)
- [init(string:relativeTo:)](foundation/nsurl/init(string:relativeto:).md)
- [fileURL(withPath:isDirectory:)](foundation/nsurl/fileurl(withpath:isdirectory:).md)
- [init(fileURLWithPath:isDirectory:)](foundation/nsurl/init(fileurlwithpath:isdirectory:).md)
- [fileURL(withPath:relativeTo:)](foundation/nsurl/fileurl(withpath:relativeto:).md)
- [init(fileURLWithPath:relativeTo:)](foundation/nsurl/init(fileurlwithpath:relativeto:).md)
- [fileURL(withPath:isDirectory:relativeTo:)](foundation/nsurl/fileurl(withpath:isdirectory:relativeto:).md)
- [init(fileURLWithPath:isDirectory:relativeTo:)](foundation/nsurl/init(fileurlwithpath:isdirectory:relativeto:).md)
- [fileURL(withPath:)](foundation/nsurl/fileurl(withpath:).md)
- [init(fileURLWithPath:)](foundation/nsurl/init(fileurlwithpath:).md)
- [fileURL(withPathComponents:)](foundation/nsurl/fileurl(withpathcomponents:).md)
- [init(resolvingAliasFileAt:options:)](foundation/nsurl/init(resolvingaliasfileat:options:).md)
