This class permits manipulation of URLs and the
resources to which they refer. They can be used to
represent absolute URLs or relative URLs which are
based upon an absolute URL. The relevant RFCs
describing how a URL is formatted, and what is
legal in a URL are - 1808, 1738, and 2396.
Handling of the underlying resources is carried out
by NSURLHandle objects, but NSURL provides a simplified
API wrapping these objects.
Create and return a URL with the supplied string,
which should be a string (containing percent escape
codes where necessary) conforming to the description
(in RFC2396) of an absolute URL. Calls
-initWithString:
Create and return a URL with the supplied string,
which should be a string (containing percent escape
codes where necessary) conforming to the description
(in RFC2396) of a relative URL. Calls
-initWithString:relativeToURL:
Create and return a file URL with the supplied path.
The value of aPath must be a valid
filesystem path. Calls
-initFileURLWithPath:
which escapes characters in the path where necessary.
Returns a URL formed by adding a path component to
the path of the receiver, along with a trailing slash
if the component is designated a directory. See
[NSString -stringByAppendingPathComponent:]
.
Returns an NSURLHandle instance which may be used
to write data to the resource represented by the
receiver URL, or read data from it. The
shouldUseCache flag indicates whether a
cached handle may be returned or a new one should be
created.
Returns the fragment portion of the receiver or
nil if there is no fragment supplied in
the URL. The fragment is everything in the
original URL string after a '#' File URLs
do not have fragments.
Returns the host portion of the receiver or
nil if there is no host supplied in the
URL. Percent escape sequences in the user
string are translated and the string treated as
UTF8. Returns IPv6 addresses without
the enclosing square brackets required (by RFC2732) in
URL strings.
Initialise as a file URL with the specified path
(which must be a valid path on the local
filesystem). Raises
NSInvalidArgumentException if
aPath is nil. Converts
relative paths to absolute ones. Appends a
trailing slash to the path when necessary if it
specifies a directory. Calls
-initWithScheme:host:path:
Initialise as a file URL with the specified path
(which must be a valid path on the local
filesystem). Raises
NSInvalidArgumentException if
aPath is nil. Converts
relative paths to absolute ones. Appends a
trailing slash to the path when necessary if it
specifies a directory. Calls
-initWithScheme:host:path:
Initialise as a file URL with the specified path
(which must be a valid path on the local filesystem)
relative to the base URL. Raises
NSInvalidArgumentException if
aPath is nil. Converts
relative paths to absolute ones. Appends a
trailing slash to the path when necessary if it
specifies a directory. Calls
-initWithScheme:host:path:
Initialise as a file URL with the specified path
(which must be a valid path on the local filesystem)
relative to the base URL. Raises
NSInvalidArgumentException if
aPath is nil. Converts
relative paths to absolute ones. Appends a
trailing slash to the path when necessary if it
specifies a directory. Calls
-initWithScheme:host:path:
Initialise by building a URL string from the
supplied parameters and calling
-initWithString:relativeToURL:
This method adds percent escapes to
aPath if it contains characters which need
escaping. Accepts RFC2732 style IPv6 host
addresses either with or without the enclosing
square brackets (MacOS-X at least up to version 10.5
does not handle these correctly, but GNUstep does).
Permits the 'aHost' part to contain
'username:password@host:port'
or 'host:port' in addition to a simple host name or
address.
Initialised using aUrlString and
aBaseUrl. The value of aBaseUrl
may be nil, but aUrlString must
be non-nil. Accepts RFC2732 style IPv6 host
addresses. Parses a string wihthout a
scheme as a simple path. Parses an empty
string as an empty path. If the string cannot
be parsed the method returns nil.
If shouldUseCache is YES then
an attempt will be made to locate a cached NSURLHandle
to provide the resource data, otherwise a new handle
will be created and cached.
If the handle does not have the data available, it
will be asked to load the data in the background by
calling its loadInBackground method.
The specified client (if non-nil) will be
set up to receive notifications of the progress of
the background load process.
The processes current run loop must be run in order
for the background load operation to operate!
Returns the parameter portion of the receiver or
nil if there is no parameter supplied
in the URL. The parameters are everything in the
original URL string after a ';' but before the
query. File URLs do not have parameters.
Returns the password portion of the receiver or
nil if there is no password supplied in
the URL. Percent escape sequences in the user
string are translated and the string treated as UTF8
in GNUstep but this appears to be broken in MacOS-X.
NB. because of its security implications it
is recommended that you do not use URLs with users and
passwords unless necessary.
Returns the path portion of the receiver.
Replaces percent escapes with unescaped values,
interpreting non-ascii character sequences as
UTF8. NB. This does not conform strictly to
the RFCs, in that it includes a leading slash ('/')
character (whereas the path part of a URL
strictly should not) and the interpretation of
non-ascii character is (strictly speaking)
undefined. Also, this breaks strict
conformance in that a URL of file scheme is
treated as having a path (contrary to RFCs)
Returns the port portion of the receiver or
nil if there is no port supplied in the
URL. Percent escape sequences in the user
string are translated in GNUstep but this appears to
be broken in MacOS-X.
Returns the query portion of the receiver or
nil if there is no query supplied in
the URL. The query is everything in the original
URL string after a '?' but before the fragment.
File URLs do not have queries.
Returns the path of the receiver, without taking
any base URL into account. If the receiver is an
absolute URL,
-relativePath
is the same as -path
. Returns nil if there is no path
specified for the URL.
Loads the resource data for the represented URL and
returns the result. The shouldUseCache
flag determines whether data previously retrieved by
an existing NSURLHandle can be used to provide the data,
or if it should be refetched.
Returns the user portion of the receiver or
nil if there is no user supplied in the
URL. Percent escape sequences in the user
string are translated and the whole is treated as
UTF8 data. NB. because of its security
implications it is recommended that you do not
use URLs with users and passwords unless necessary.
An informal protocol to which clients may conform if they
wish to be notified of the progress in loading a URL for
them. NSURL conforms to this protocol but all methods
are implemented as no-ops. See also the
<NSURLHandleClient>
protocol.