The methods declared in IRCClientSessionDelegate and
IRCClientChannelDelegate now have an additional parameter, for
the session or the channel to send a reference to itself. This is
in order that a single delegate object may manage multiple sessions
or channels, and disambiguate between them when receiving messages.
Banish NSString to the depths of oblivion (encoding fix)
IRCClient is now entirely text-encoding-agnostic[1]. It takes values
for messages, nicks, channels, etc. as NSData objects which should
contain null-terminated C strings, and returns values likewise.
The 'encoding' property of IRCClientSession and IRCClientChannel is
no longer used for any[1] internal functions. It is the responsibility
of the framework's user to select an appropriate encoding for display
of received C-strings (storing this encoding with session and channel
objects is the function of the 'encoding' property).
[1] The one exception is the reply string to CTCP TIME requests, which
uses the specified encoding for the session.
IRCClient now supports PRIVMSG and NOTICE messages that are not
addressed to the client's nick, nor to any channel the client is on.
An example is the AUTH messages that some servers emit at the start
of the connection process.