---
title: "init(string:relativeTo:)"
framework: foundation
role: symbol
role_heading: Initializer
path: "foundation/nsurl/init(string:relativeto:)"
---

# init(string:relativeTo:)

Initializes an NSURL object with a base URL and a relative string.

## Declaration

```swift
init?(string URLString: String, relativeTo baseURL: URL?)
```

## 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. URLString is interpreted relative to baseURL.
- `baseURL`: The base URL for the NSURL object.

## Return Value

Return Value An NSURL object initialized with URLString and baseURL. If URLString was malformed, returns nil.

## Discussion

Discussion This method allows you to create a URL relative to a base path or URL. For example, if you have the URL for a folder on disk and the name of a file within that folder, you can construct a URL for the file by providing the folder’s URL as the base path (with a trailing slash) and the filename as the string part. 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. init(string:relativeTo:) is the designated initializer for NSURL.

## See Also

### Related Documentation

- [NSURL](foundation/nsurl.md)

### Creating a URL object

- [init(string:)](foundation/nsurl/init(string:).md)
- [init(string:encodingInvalidCharacters:)](foundation/nsurl/init(string:encodinginvalidcharacters:).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)
- [init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)](foundation/nsurl/init(resolvingbookmarkdata:options:relativeto:bookmarkdataisstale:).md)
- [fileURL(withFileSystemRepresentation:isDirectory:relativeTo:)](foundation/nsurl/fileurl(withfilesystemrepresentation:isdirectory:relativeto:).md)
- [getFileSystemRepresentation(_:maxLength:)](foundation/nsurl/getfilesystemrepresentation(_:maxlength:).md)
