Objective-CからSwiftに書き換える場合のNULLの扱い方とは?
nil
とNULL
に関してSwiftではどのように考えたらいいか教えてください。
Objective-Cでは
nil
= オブジェクトが空
NULL
= ポインタが空
という意味合いで使い分けていました。
しかしSwiftではNULL
と相対するものはないという事で、以下のサイトのNULL
をどう書き換えればいいかで詰まっています。
http://internetcom.jp/developer/20100406/26.html
+ (void)getStreamsToHostNamed:(NSString *)hostName
port:(NSInteger)port
inputStream:(NSInputStream **)inputStreamPtr
outputStream:(NSOutputStream **)outputStreamPtr
{
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
assert(hostName != nil);
assert( (port > 0) && (port < 65536) );
assert( (inputStreamPtr != NULL) || (outputStreamPtr != NULL) );
readStream = NULL;
writeStream = NULL;
CFStreamCreatePairWithSocketToHost(
NULL,
(CFStringRef) hostName,
port,
((inputStreamPtr != nil) ? &readStream : NULL),
((outputStreamPtr != nil) ? &writeStream : NULL)
);
if (inputStreamPtr != NULL) {
*inputStreamPtr = [NSMakeCollectable(readStream) autorelease];
}
if (outputStreamPtr != NULL) {
*outputStreamPtr = [NSMakeCollectable(writeStream) autorelease];
}
}
NULL == nilに置き換えて考えていいという事ではありませんよね?
unsafePointerなどを使って書いていくのでしょうか?