FTP接続でエラーになった場合のFTPのレスポンスコードの取り方
AppleのFTP接続のサンプル(SimpleFTPSample)で、
なぜかディレクトリ作成のサンプルでしかレスポンスコードをチェックしていないので、他の場合でもいけるのか試してみた。
CFReadStreamRef使用時はCFReadStreamGetError()、
CFWriteStreamRef使用時はCFWriteStreamGetError()を使って、
返ってきたCFStreamErrorのdomainとerrorを確認する。
SimpleFTPSampleのListControllerのstream:handleEvent:の
case NSStreamEventErrorOccurred:に次のコードを追加、
CFStreamError error = CFReadStreamGetError((__bridge CFReadStreamRef)self.networkStream);
NSLog(@"domain = %ld", error.domain);
NSLog(@"error = %ld", error.error);
ためしに間違ったパスワードを指定して接続した場合を確認
2012-09-08 16:37:33.133 FTPSample[13254:707] domain = 6 // kCFStreamErrorDomainFTP
2012-09-08 16:37:33.134 FTPSample[13254:707] error = 530 // Not logged in.
※レスポンスコードはここのページを参照
http://www.atmarkit.co.jp/fnetwork/rensai/netpro10/ftp-responsecode.html
ちゃんととれてるよなあ。
なんで他のサンプルではチェックしていないんだろう。
UILabelのhighlightedTextColorを設定する
つい最近この存在に気づいたのでメモ
UILabelのhighlightedTextColorを指定すると
addしたUITableViewCellがhighlightになったときに
連動してUILabelのフォントカラーが変更される。
ちなみに、highlightedTextColorのデフォルトは黒なので
カスタムセルでxibやソースコードでUILabelをaddする場合は
highlightになってもフォントカラーが変更されないという事になりえるので注意が必要です。
Twitter.frameworkを使って投稿する。(おまけ)
TWTweetComposeViewControllerを表示した時点で
任意の文字列を入力している状態にしたいときは、
- (BOOL)setInitialText:(NSString *)text;
で入れたい文字列をセットします。
画像やURLをつけて投稿したい場合は
TWTweetComposeViewControllerを表示する前に
- (BOOL)addImage:(UIImage *)image;
- (BOOL)addURL:(NSURL *)url;
でそれぞれセットします。
※画像とURLをセットする順番やセットする数で制限があるようです。
Twitter.frameworkを使って投稿する。
iOS5 SDKからTwitter.frameworkが追加されたのでどんな感じで投稿できるか試してみました。
まず、Twitter.hをインポート
#import
Twitterに投稿できる(設定アプリでアカウントを登録している)かどうかのチェックはTWTweetComposeViewControllerのクラスメソッドを使用します。
+ (BOOL)canSendTweet;
投稿できる場合はTWTweetComposeViewControllerをモーダル表示、できない場合はアラートを表示するようにしてみました。
if ([TWTweetComposeViewController canSendTweet]) {動かすとこんな感じで表示されます。
TWTweetComposeViewController* vc = [[TWTweetComposeViewController alloc] init];
[self presentModalViewController:vc animated:YES];
[vc release];
} else {
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"お知らせ"
message:@"Twitterアカウントが登録されていません。"
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
}
実際にTweetしたのがこれ。
TWTweetComposeViewControllerを使う事で簡単に投稿できました。
なお、設定アプリではTwitterアカウントを複数登録できますが、
この辺もTwitter.frameworkで吸収してくれているようです。
次のように投稿するアカウントを指定できるようになります。
とりあえず
開設してみた。
ちょくちょく更新していければいいなあ。