ニュースリリースで2月末まで無料と書いてしまったこともあり、3月以降は無料スクールが無いと思われているかたが多いようです。。。
3月以降も継続して行いますのでお申し込みお待ちしております。
4月からは有償講習も始まりますので興味のある方はWEBサイトのチェックをお願いします。
まかせて!アプリ開発スクールへのリンク
3月以降も継続して行いますのでお申し込みお待ちしております。
4月からは有償講習も始まりますので興味のある方はWEBサイトのチェックをお願いします。
まかせて!アプリ開発スクールへのリンク
コメントにて質問がありましたので改めて載せます。
iPhoneでオブジェクトを回転させる
で解説したオブジェクトの回転方法ですが、以下のようにすると回転する原点(中心点)を変えることができます。
button.layer.anchorPoint = CGPointMake(0, 0.5);
button.transform = CGAffineTransformRotate(button.transform, M_PI_2);
これでオブジェクトの左端を原点として回転することができます。
iPhoneでオブジェクトを回転させる
で解説したオブジェクトの回転方法ですが、以下のようにすると回転する原点(中心点)を変えることができます。
button.layer.anchorPoint = CGPointMake(0, 0.5);
button.transform = CGAffineTransformRotate(button.transform, M_PI_2);
これでオブジェクトの左端を原点として回転することができます。
MACASEL森本です。
2010/3/22~26日の間、試験的に夜間の無料講習を行います。お申し込みお待ちしております。
弊社無料講習に参加して頂いた多くの方から「この講習内容でお金取らないのはびっくり」、「この内容でなんで無料なんですか?」といったお声を頂きます。無料講習に関しては社会貢献の一環として行っております。
2010/4/1日からは無料講習はそのままで継続して行い、夜間に有料講習が始まる予定です。基本的な開発スキルをお持ちの方向けのレベルの高い内容となっておりますので、素早く開発技術を身につけたい方、技術的な問題で開発に詰まっておられるかたは必見です。2010/2月中には有料講習の内容をWEBサイトにアップ致します。
2010/3/22~26日の間、試験的に夜間の無料講習を行います。お申し込みお待ちしております。
弊社無料講習に参加して頂いた多くの方から「この講習内容でお金取らないのはびっくり」、「この内容でなんで無料なんですか?」といったお声を頂きます。無料講習に関しては社会貢献の一環として行っております。
2010/4/1日からは無料講習はそのままで継続して行い、夜間に有料講習が始まる予定です。基本的な開発スキルをお持ちの方向けのレベルの高い内容となっておりますので、素早く開発技術を身につけたい方、技術的な問題で開発に詰まっておられるかたは必見です。2010/2月中には有料講習の内容をWEBサイトにアップ致します。
iPhoneのIPを取得する方法は複数ある。
1.ホスト名からIPを取得する
2.内部でソケットを接続して取得する
3.NICからIPを取得する
1 は一番簡単だけどホスト名に日本語が混じっているとうまく取得できない。
2 も簡単だけど自分のIPを知る為にわざわざソケットを接続するのが無駄な気がする。
3 はハードウェアの構成に結果が左右されそうだが、iPhoneは今のところ2機種のみである。
ということで、現状は3つ目の方法がベターと考える。
以下はIPを取得してログを出力するサンプル
-----------------------------------------------------------------------------
//getifaddrs を使ったサンプル
#import
#if TARGET_IPHONE_SIMULATOR
#define LOCAL_NIC @"en1" //私のMacはAirMacがこのIDで割り振られている
#else
#define LOCAL_NIC @"en0" //iPhoneのWi-Fiモジュールはen0で固定のようだ
#endif
struct ifaddrs *addrs, *tempAddr;
struct in_addr addr;
//NICの情報を取得する
getifaddrs(&addrs);
for (tempAddr = addrs; NULL != tempAddr; tempAddr = tempAddr->ifa_next) {
//IPv4で、かつ、Wi-Fi接続のNICのみをログに出力する
if ((AF_INET == tempAddr->ifa_addr->sa_family)
&& [[NSString stringWithUTF8String:tempAddr->ifa_name] isEqualToString:LOCAL_NIC]) {
//ifa_nameの種類
//en0 = Wi-Fi
//pdp_ip0 = 3G回線
NSLog(@"ifa_name[%s]", tempAddr->ifa_name);
addr.s_addr = ((struct sockaddr_in *)(tempAddr->ifa_addr))->sin_addr.s_addr;
//sin_familyの種類
//AF_INET = 2 IPv4の判定に使う
//AF_LINK = 18
//AF_INET6 = 30 IPv6の判定に使う
NSLog(@"sin_family[%d]", ((struct sockaddr_in *)(tempAddr->ifa_addr))->sin_family);
NSLog(@"ifa_addr[%s]", inet_ntoa(addr));
}
}
//メモリ解放を忘れちゃだめ
freeifaddrs(addrs);
-----------------------------------------------------------------------------
ログの出力結果はこんな感じ
-----------------------------------------------------------------------------
ifa_name[en0]
sin_family[2]
ifa_addr[10.0.0.2]
-----------------------------------------------------------------------------
1.ホスト名からIPを取得する
2.内部でソケットを接続して取得する
3.NICからIPを取得する
1 は一番簡単だけどホスト名に日本語が混じっているとうまく取得できない。
2 も簡単だけど自分のIPを知る為にわざわざソケットを接続するのが無駄な気がする。
3 はハードウェアの構成に結果が左右されそうだが、iPhoneは今のところ2機種のみである。
ということで、現状は3つ目の方法がベターと考える。
以下はIPを取得してログを出力するサンプル
-----------------------------------------------------------------------------
//getifaddrs を使ったサンプル
#import
#if TARGET_IPHONE_SIMULATOR
#define LOCAL_NIC @"en1" //私のMacはAirMacがこのIDで割り振られている
#else
#define LOCAL_NIC @"en0" //iPhoneのWi-Fiモジュールはen0で固定のようだ
#endif
struct ifaddrs *addrs, *tempAddr;
struct in_addr addr;
//NICの情報を取得する
getifaddrs(&addrs);
for (tempAddr = addrs; NULL != tempAddr; tempAddr = tempAddr->ifa_next) {
//IPv4で、かつ、Wi-Fi接続のNICのみをログに出力する
if ((AF_INET == tempAddr->ifa_addr->sa_family)
&& [[NSString stringWithUTF8String:tempAddr->ifa_name] isEqualToString:LOCAL_NIC]) {
//ifa_nameの種類
//en0 = Wi-Fi
//pdp_ip0 = 3G回線
NSLog(@"ifa_name[%s]", tempAddr->ifa_name);
addr.s_addr = ((struct sockaddr_in *)(tempAddr->ifa_addr))->sin_addr.s_addr;
//sin_familyの種類
//AF_INET = 2 IPv4の判定に使う
//AF_LINK = 18
//AF_INET6 = 30 IPv6の判定に使う
NSLog(@"sin_family[%d]", ((struct sockaddr_in *)(tempAddr->ifa_addr))->sin_family);
NSLog(@"ifa_addr[%s]", inet_ntoa(addr));
}
}
//メモリ解放を忘れちゃだめ
freeifaddrs(addrs);
-----------------------------------------------------------------------------
ログの出力結果はこんな感じ
-----------------------------------------------------------------------------
ifa_name[en0]
sin_family[2]
ifa_addr[10.0.0.2]
-----------------------------------------------------------------------------