[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ContaonerViewController.h
#import <UIKit/UIKit.h>
@protocol ChildContainerDelegate; // << 前置宣言
@interface ContainerViewController : UIViewController
@property (nonatomic,assign) id<ChildContainerDelegate> delegate; // delegateの宣言
@property (weak, nonatomic) IBOutlet UILabel *MyLabel;
-(void)myfunc;
@end
// delgateの定義
@protocol ChildContainerDelegate <NSObject>
// Delegate用関数の定義(必ず実装しないといけない)
-(void) sampleA:(NSString *)message;
@optional
// Delegate用関数の定義(Optionalの配下では、必ずしも実装しなくてもよい)
-(void) sampleB:(NSString *)message;
@end
1.Delegateに名前をつける。"ChildConatinerDelegate"
2.子のクラスで、Delegateを使用することを宣言する。
プロトコルの宣言とプロパティの宣言
@protocol ChildContainerDelegate;
@proparty (nonatomic, assign) id<ChildContainerDelegate> delegate;
*propartyは、@interface~@endに記載する。
3.delegateの定義
delegateで使用する関数を定義する。
@protcol ChildCOnatinerDelegate <NSObject>
@end
(引数なし)
-(void) sampleC;
ContaonerViewController.m
#import "ContainerViewController.h"
@interface ContainerViewController ()
@end
@implementation ContainerViewController
@synthesize delegate=_delegate;
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
-(void)myfunc{
_MyLabel.text = @"FUNC";
}
- (IBAction)MyButton2:(id)sender {
NSLog(@"BUTTON2");
//親クラスにイベントを発火させる(関数A)
//respondsToSelectorで実装されているかどうかを調べてから発火する。
if( [_delegate respondsToSelector:@selector(sampleA:)]){
[_delegate sampleA:@"MESSAGE_DELEGATE_FUNCTION"];
}
//親クラスに実装されていないイベントを発火させる(関数A)
if( [_delegate respondsToSelector:@selector(sampleB:)]){
[_delegate sampleB:@"MESSAGE_DELEGATE_FUNCTION"];
}
}
@end
1.delegateの名前を宣言する
@synthesize delegate=_delegate;
//実は、XCode4以降必要ない。(_delegate以外の名前を使用したい場合は記述する)
2.親クラスにイベントを発火させる。
_delegate sampleA:["MESSAGE_DELEGATE_FUNCTION"];
事前に実装されているか調べて実行したほうがいい。
[_delegate respondsToSelector:@sekector(SampleA:)]で調べられる。
ViewController.h
#import <UIKit/UIKit.h>
#import "ContainerViewController.h"
@interface ViewController : UIViewController <ChildContainerDelegate>
@property (weak, nonatomic) IBOutlet UILabel *lbl;
@end
1.クラスにdelegateを使用することを宣言する
@inteface ViewController : UIViewContorller <ChildContainerDelegate>
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) NSString *currentSegueIdentifier;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
for (id childview in self.childViewControllers) {
ContainerViewController *cview = childview;
if ([cview.title isEqualToString:@"ChildContainer1"]){
cview.delegate = self;
}
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
// delegateが呼び出された時に、labelの内容を変更する
-(void)sampleA:(NSString *)Message{
NSLog(@"DELEGATE:%@", Message);
_lbl.text = @"DELEGATE";
}
- (IBAction)Button1:(id)sender {
for (id c in self.childViewControllers) {
ContainerViewController *cview = c;
if ([cview.title isEqualToString:@"ChildContainer1"]){
[cview myfunc];
}
}
}
@end
View
そんな、私が期待していた、今回の新商品、MacBook Pro Ratina Display 13"です。
15インチのMacBook Pro でも十分小さく薄いです。これを使う前までに使用していた、DELL製のArienware 15"に比べたら、薄い、小さい、軽いしかも性能は抜群というので気に入っていましたから、今回の13インチは、内容次第では、絶対買おうと思っていただけに残念です。
何がダメかというと、前回の13"でも採用されていたnVidiaのグラフィックが搭載されなかったことです。
13インチクラスで、オンボードのグラフィックのノートパソコンであれば、MacBookだけではなく、Ultra Bookでもたくさんあります。
FULL HD以上の解像度を有しながら、グラフィックを別で搭載していながら13インチ以下の製品は、過去ソニーぐらいしかなかった(現行品でなし)、正直、13インチモデルは、Ratinaでなくてもよかった。FULL HDで十分だったが、グラフィックはnVidiaのまま残しておいてほしかった製品である。
中身が見えないのを良いことにー!
プリンターのインクが高いのは言うまでもない。絶対に過剰プライスだとみんな思っているだろうとこも言うまでもない。が、なんとただ高いだけでなく、インクの量自体が年々減っていっていることが判明。しかもちょっとやそっとじゃくて、かなりの量が。
ネタ元のHP Ink Cartridgeブログが、2010年/2011年/2012年に発売された同じインクカートリッジの中身をチェックしたところ...。ほら! この写真の通り。カートリッジの中にあるスポンジは、インクを吸収し水分をはねのけることで、湿気の多い環境で水とインクが混ざらないための役割をしてい ます。そのスポンジが年々こんなに小さくなっています。2010年と2012年を比べると半分以下! インクカートリッジの消費量は右肩下がりでしょう が、その対策が量を少なくして買わせる頻度をあげること、とは...。うぅむ。
あ、スポンジ技術がすごく発達しているってこと? いやいや、まさか。
ギズモード・ジャパン
Windows 7では、作業を終了するときに「シャットダウン」「スリープ」「休止状態」の3通りが選べた。ハイブリッドブートは、このうちシャットダウンと休止状態の “いいとこ取り”を目指した起動方式だ。その理解のために、まず従来の終了方法を簡単におさらいしておこう。
完全に電源を切った状態からパソコンを起動すると、ハードディスクからメモリーにWindowsの基幹部分(カーネル)や各種のサービス、周辺機器のドライバーなどが読み込まれる。ログオン後にアプリを起動すれば、それもメモリーに保持される。
Windows 7でマイクロソフトが推奨していた終了方法はスリープ。これは、メモリーに通電してデータを保持しながら、そのほかの装置の電源を切ることで消費電力を抑 える。電源を入れればすぐに復帰できるのがメリットだ。しかし、わずかに電力を消費するため、特にノートパソコンでは使いにくかった。
一方、休止状態は、終了前にメモリーの内容をハードディスクに「休止状態ファイル」として記録。その後全ての電源を切るので、電力を消費しない。そして起動するときは休止状態ファイルをメモリーに読み込むだけなので、シャットダウンからの起動よりは時間を短縮できた。
ところがマイクロソフトの調査では、ノートパソコンで休止状態を使う人はわずか11%と少なかった。これは、「シャットダウンをしないとパソコンが不安 定になる」と考える人が多かったからだ。実際、スリープや休止状態だけを使い続け、全くシャットダウンをしないと、周辺機器のドライバーが初期化されない ため、不安定になることがある。
この問題を解決するのがハイブリッドブートだ。休止状態並みの起動時間を確保しつつ、不安定にならないようにする。具体的には、Windowsのカーネ ル部分だけを休止状態ファイルとして保存してから電源を切る。ドライバーやユーザー環境などは保存しないので、休止状態ファイルの●従来のシャットダウン と休止状態は設定変更で呼び出す容量が小さくなるのも利点だ(図1)。この状態からパソコンを起動すると、BIOSの初期化などの前処理をした後、休止状 態ファイルを読み込み、その後ドライバーの初期化が行われる。これで完全にシャットダウンしたときよりも速く、しかも安定した状態で起動できる(図2)。
●「休止状態」と「シャットダウン」の“いいとこ取り”
図1 ハイブリッドブートは、従来のシャットダウンと休止状態の特徴を併せ持つ方式。Windowsの基幹部分(カーネル)だけを休止状態ファイルとしてハードディスクに保存する。このため、従来の休止状態より少し速く終了できるメリットもある
図2 通常の起動処理では、Windowsのカーネルやサービス、周辺機器のドライバーなどを初期化して呼び出すため、時間がかかる。ハイブリッドブート では、カーネルの初期化の代わりに休止状態ファイルを読み込むだけなので高速に起動できる。それでもドライバーは初期化するので、休止状態よりも動作が安 定する
5月2日(米国時間)にBuilding Windows 8でWindows LiveグループのChris Jones氏が、
Windows 8時代に向けたWindows Liveブランドの発展的な解体について説明している。
2005年1月に登場したWindows Liveは、クラウドサービスへの接続を前提としていなかったWindowsを拡張するためのサービスとソフトウエアだった。
Microsoftは現在、同ブランドでPC用ソフトウエア (Windows Live Essentials)、
Webベースのサービス (Hotmail、SkyDrive、メッセンジャーなど)、
ユーザーアカウント (Windows Live ID)などを提供している。
今や数多くのWindowsユーザーにとって不可欠なものになっており、
Windows Liveサービスのアクティブユーザー/月は5億人を超える。
しかし、その成長と共にWindows Liveという別のブランドでの提供に違和感を覚えたり、
追加インストールが煩雑というようなユーザーからのフィードバックが増加していたという。
Windows 8ではクラウドサービスや関連するソフトウエアがWindowsの利用体験の一部として組み込まれる。
別ブランド(Windows Live)での提供は不要であり、むしろ混乱を避けるためにWindows Liveを整理する必要がある。
Windows 8はクラウドサービスをバックグラウンドにして機能するように設計されている。
ユーザーはMicrosoftアカウントにサインインするだけで、クラウドサービスを中心に、
PCのデスクトップアプリやMetroスタイルアプリ、Metroスタイルベースのタブレット、
Windows Phoneベースのスマートフォンなどで同じように自分の環境を利用できるようになる。
例えば、Windows 8 PCで連絡先を作成すれば、同じMicrosoftアカウントに紐付けられた他のWindows 8マシン、
Windows Phoneスマートフォン、Hotmail、メッセンジャー、SkyDriveなどで共有される。
そこで異なるデバイスでも同じデータを共有し、共通のサービスを利用できることが伝わるように、
多様だったソフトウエアを以下の一覧表のように可能な限り統一する。
例えば、これまでWindows Live MailやOutlook Expressなどがあったメールクライアントは、
Windows 8とWindows PhoneともにMail appになる。カレンダー(Windows Live Mail、Windows Calendar)はシンプルにCalendar appだ。
Windows LiveユーザーはWindows Live IDがMicrosoftアカウントへと変わる。
Microsoftは今後数カ月をかけて大部分の製品で名称変更を実施するという。
http://news.mynavi.jp/news/2012/05/03/023/