Objective-C UILabelをperformSelectorInBackgroundで連続で操作すると落ちる

UIProgressViewで進捗を表示すると同時に、
UILabelで%を表示しようと思い、performSelectorInBackgroundで書き換えるコードを書いたところ、
10回に1回ぐらいの割合で落ちた。

エラーメッセージや頻度もまちまちなため、
恐らく複数のスレッドで同時にUILabelにアクセスしようとして落ちたのではと思い、
KAThreadを使わせて頂き、
常に同じスレッドで更新するようにしたところ落ちなくなった。

KAThreadはこちら

Objective-C iPhoneアプリでmp3などの音楽をWebのURLを指定して再生する

音楽データをWebから取得して再生するのをやりたくていろいろやり方を調べた結果をまとめておきます。

AVAudioPlayerを使うと、
サーバ上のURLを指定して音楽データをWeb上から取得して再生が出来ます。

AVAssetやAVMetadataItemを使い、
mp3のメタデータやアートワークも取得ができます。

[objc]
NSError *error;
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
AVAudioPlayer *_audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:&error];

if( error ){
NSLog(@"%@", error);
return;
}

AVAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
NSArray *metadata = [asset commonMetadata];

for ( AVMetadataItem *item in metadata ) {
if( [[item commonKey] isEqualToString:@"title"] ){
_currentPlayingTitle = [item stringValue];
}
if( [[item commonKey] isEqualToString:@"artist"] ){
_currentPlayingArtist = [item stringValue];
}
if ([[item commonKey] isEqualToString:@"artwork"]) {
UIImage *img = nil;
if ([item.keySpace isEqualToString:AVMetadataKeySpaceiTunes]) {
img = [UIImage imageWithData:[item.value copyWithZone:nil]];
}
else { // if ([item.keySpace isEqualToString:AVMetadataKeySpaceID3]) {
NSData *data = [(NSDictionary *)[item value] objectForKey:@"data"];
img = [UIImage imageWithData:data] ;
}
_currentPlayingArtwork = img;
}
}

[_audioPlayer prepareToPlay];
[/objc]

三菱東京UFJ銀行をかたりログイン情報を得ようとする詐欺サイト

最近よく届くメールが、
「三菱東京UFJ銀行」本人認証サービスという件名で、
こんにちは!
最近、利用者の個人情報が一部のネットショップサーバーに不正取得され、利用者の個人情報漏洩事件が起こりました。
お客様のアカウントの安全性を保つために、「三菱東京UFJ銀行システム」がアップグレードされましたが、お客様はアカウントが凍結されないように直ちにご登録のうえご確認ください。
などというメッセージと共に
一見本物の三菱東京UFJ銀行のログインURLが張られている。

ところが、見かけは本物のURLだが、
実はリンク先は中国サイトの別URLで、アクセスすると
三菱東京UFJ銀行のログイン画面に似せた偽サイトへ飛ばされる。

もしクリックしてしまった場合でも、
ログイン画面に何も入力しなければ特に問題はない。

もし入力してしまった場合は
下記のURLに掲載されている電話番号に連絡して欲しいとのこと。
http://www.bk.mufg.jp/info/phishing/index.html

何も知らないユーザは、
下手をするとログインIDとパスワードを入力してしまい、
ログイン情報を盗まれることになる。

更に恐ろしいと思ったのは、
下にあるベリサインシールをクリックすると、
本物のベリサイン証明書の表示がされてしまう。
与えるURLパラメータは誰でも好きに与えられるため、
本当にベリサインの証明書を利用しているかのような錯覚を与えられる。

他にも同様のメールが届いたユーザがいたら、
本物の三菱東京UFJからのメールは電子証明書付きで送られてくるため、
証明書がついているかを確認したり、
差出元のアドレスがyahoo.co.jpのフリーメールなので確認すればすぐに偽物だと分かるため、削除したり無視したりする。

FacebookアプリをPHPで使用していてこのウェブページにはリダイレクト ループが含まれていますと表示される

CakePHPのからFacebookのoauth認証を使っていて、
自分だけは認証が上手くいき、他のユーザーはループが発生するとエラーが表示されはまった。

エラー画面にはアプリがサンドボックスモードになっているなどで表示されており、
ググると設定方法が出てくるが、管理画面が新しくなっていた。

現在では、
アプリ管理画面の左メニューにあるStatus & Reviewを選択すると
capture1

Do you want to make this app and all its live features available to the general public?
というメッセージと共にスイッチがあり、これがデフォルトではいいえになっているため、
はいにすると問題が解消された。
capture2