NSStreamクラス
解説
ソケット通信を行うためのクラスです
APPLE MacBook Pro 13.3/2.5GHz Core i5/4GB/500GB/8xSuperDrive DL MD101J/A
- 出版社/メーカー: アップル
- 発売日: 2012/06/13
- メディア: Personal Computers
- 購入: 2人 クリック: 44回
- この商品を含むブログ (10件) を見る
継承 | NSObject | |
準拠 | NSObject (NSObject) | |
フレームワーク | /System/Library/Frameworks/Foundation.framework | |
使用可能 | Mac OS X v10.3以降 | |
iOS 2.0以降 | ||
watchOS 2.0以降 | ||
定義 | NSStream.h |
watchOS
developer.apple.com
概要
ソケット通信を行うためのクラスです。NSStreamは抽象クラスで、実際に使用する際はサブクラスであるNSInputStreamとNSOutputStreamを使います。
メモリ・ファイル・ネットワークに対してデータを読み書きすることができます。
初期化
デリゲートをセットするには(– setDelegate)メソッドを使用します。デリゲートを取得するには(– delegate)メソッドを使用します。通信の結果がデリゲートに返ってきます。
プロパティをセットするには(– setProperty:forKey)メソッドを使用します。プロパティを取得するにはキーを指定して(– propertyForKey)メソッドを使用します。
SSL通信を行うとき(キーをNSStreamSocketSecurityLevelKeyにして、値NSStreamSocketSecurityLevelNegotiatedSSLをセットする)などに使用します。
実行ループの管理
ストリームを実行するための実行ループにセットするには(– scheduleInRunLoop:forMode)メソッドを使用します。ストリームの使用を止め、実行ループから取り除くには(– removeFromRunLoop:forMode)メソッドを使用します。
ストリーム情報の取得
ストリームの状態を取得するには(– streamStatus)メソッドを使用します。
ストリームの状態(NSStreamStatus)
NSStreamStatusNotOpen ストリームが開かれていない。
NSStreamStatusOpening ストリームを開こうとしている。
NSStreamStatusOpen ストリームが開かれている。
NSStreamStatusReading ストリームを読んでいる。
NSStreamStatusWriting ストリームに書いている。
NSStreamStatusAtEnd 最後まで来た。
NSStreamStatusClosed ストリームが閉じられている。
NSStreamStatusError エラーが発生した。
ストリームのエラーを取得するには(– streamError)メソッドを使用します。
NSInputStreamを使って、ユーザー「oogon」のTwitterタイムラインを取得する。
#pragma mark JSONObjectWithStream -(void)method002 { NSData *tweets = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.search.twitter.com/search.json?q=from:oogon"]]; NSInputStream *twitterStream = [[NSInputStream alloc] initWithData:tweets]; [twitterStream open]; if (twitterStream) { NSError *parseError = nil; id jsonObject = [NSJSONSerialization JSONObjectWithStream:twitterStream options:NSJSONReadingAllowFragments error:&parseError]; if ([jsonObject respondsToSelector:@selector(objectForKey:)]) { for (NSDictionary *tweet in [jsonObject objectForKey:@"results"]) { NSLog(@"Tweet: %@", [tweet objectForKey:@"text"]); } } } else { NSLog(@"NG"); } }
適合するプロトコル
関連サイト
メソッド
ストリーム情報の取得
サブクラス化の注意
関連記事
NSStreamでクライアントとしてTCPソケット通信を行う その1 - sos の 作業メモ
iPhoneネットワークプログラミング - インターネットコム
nsstream - SWIFT ONLY -- Reading from NSInputStream - Stack Overflow
ios - How to use NSInputStream and NSOutputStream - Stack Overflow
iPhone/iPadネットワークプログラミング(5)Bonjourを使ってデータを送る (3) MacからiPhone/iPadヘ送信 - Void 〜tomの雑記〜