iOS7にしたらステータスバーが消えない! - 対処法

プロジェクトの設定「info」の「Custom iOS Target Properties」に、
キー「View controller-based status bar appearance」を追加して、
値を「NO」にすればOK。




【マクロミル】アンケート会員募集中!謝礼ポイント有

int型配列のセーブ&ロード

int evo[32][32];

だとして、


- Save -

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

NSData *data1 = [NSData dataWithBytes:&evo length:sizeof(evo)];

[ud setObject:data1 forKey:@"KEY_evo"];

[ud synchronize];


- Load -

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

NSData *data1 = [ud dataForKey:@"KEY_evo"];

memcpy(&evo, data1.bytes, data1.length);




【マクロミル】アンケート会員募集中!謝礼ポイント有

UITableViewで指定したセルにスクロールさせる

NSIndexPath* indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

テーマ : ソフトウェア開発 - ジャンル : コンピュータ





【マクロミル】アンケート会員募集中!謝礼ポイント有

アプリのアップロードが出来ない!

アプリ更新をしようと思って修正版をアップしたらオーガナイザエラー

・Apple's web service operation was not successful
・Unable to authenticate the package: *********.itmsp
・Exception occurred when creating MZContentProviderUpload for provider. (1004)

出たよ、意味不明なの。
いきなり認証できません言われても、別に何の設定も変えてないし、思い当たるフシがない…。

こーゆーのは以外と慌てふためいて色々やった挙句、勝手に直ってることが多いからなぁ。

今回もひとまずは「サーバー側の一時的な問題」であることを祈りつつ待ってみるか…。

続きを読む »

テーマ : ソフトウェア開発 - ジャンル : コンピュータ

Tag : アプリ 更新 オーガナイザ エラー





【マクロミル】アンケート会員募集中!謝礼ポイント有

An error occurred uploading to the iTunes Store でアプリが送信できない件

昨日からアプリを申請にだすのにオーガナイザで送信すると、

「An error occurred uploading to the iTunes Store」

と、エラーが出て終了するようになってしまった。

同じエラーで送信できない事象が過去にもあったようだけど、今回はそれらとは違うらしい。
単純に通信エラーの類かとも思ったので、1日待ってみたんだけど変わらず…。

困り果てて更に調べていると、

最近JAVAをアップデートした方は注意!XCODE4.3.2でアプリをサブミット出来ないエラーの対処法

あった! これだ!
そういやアップデートしたよJava!

って事で早速エイリアスを作成して試してみたら…、

通った!

まさかJavaが原因だったとは…。
とりあえず解決したので一安心。♪~(´ε` )




【マクロミル】アンケート会員募集中!謝礼ポイント有

小数同士の割り算の余り

基本的な事だけど、よく忘れるので…。(^^;)

// 整数の割り算の余り
int kekka = (int1 % int2);

// 小数の場合
float kekka = fmodf(float1, float2);

double kekka = fmod(double1, double1);




【マクロミル】アンケート会員募集中!謝礼ポイント有

一定時間待って実行

[self performSelector:@selector(*****) withObject:nil afterDelay:1.0];

1.0秒後に*****へ。




【マクロミル】アンケート会員募集中!謝礼ポイント有

UILabelの背景に画像を使う

NSString *path = [[NSBundle mainBundle] pathForResource:@"gazou" ofType:@"png"];

UIImage *image = [UIImage imageWithContentsOfFile:path];


lbl_gazou.backgroundColor = [UIColor colorWithPatternImage:image];






【マクロミル】アンケート会員募集中!謝礼ポイント有

UIImageViewの背景にタイルパターン

意外と知らなかったタイルパターンの描画方法。

imv_bg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 380)];

imv_bg.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"icon57.png"]];


[self.view addSubview:imv_bg];





【マクロミル】アンケート会員募集中!謝礼ポイント有

アチーブメント機能をつけてみる

.h









#import <GameKit/GameKit.h>










@interface ViewController : UIViewController<


GKAchievementViewControllerDelegate


>










// ユーザー認証


- (void) authenticateLocalPlayer;


// アチーブメント報告


-(void)reportAchievementIdentifier: (NSString*) identifier percentComplete:(float) percent;


// アチーブメント表示


- (void) showAchievements;


- (void)achievementViewControllerDidFinish:(GKAchievementViewController *)viewController;



.m










// 初期化


[self authenticateLocalPlayer];










- (void)showAchievements


{


    GKAchievementViewController *achievements = [[GKAchievementViewController alloc] init];


    if (achievements != nil)


    {


        achievements.achievementDelegate = self;


        [self presentModalViewController: achievements animated: YES];


    }


}




-(void)achievementViewControllerDidFinish:(GKAchievementViewController *)viewController


{


    [self dismissModalViewControllerAnimated:YES];


}




-(void)reportAchievementIdentifier: (NSString*) identifier percentComplete:(float) percent


{


    GKAchievement *achievement = [[GKAchievement alloc] initWithIdentifier: identifier];


    if (achievement)


    {


        achievement.percentComplete = percent;


        [achievement reportAchievementWithCompletionHandler:^(NSError *error)


         {


             if (error != nil)


             {


             }


         }];


    }


}





【マクロミル】アンケート会員募集中!謝礼ポイント有

icon dimensions (0 x 0) とかで理不尽なワーニング - 解決

アプリを申請しようとしてアーカイブしたら妙なワーニングが出た。

warning: iPhone/iPod Touch: icon114.png: icon dimensions (0 x 0) don't meet the size requirements.  The icon file must be 57x57 pixels, in .png format (-19014)

icon114.pngは間違いなく(114 x 114)のpngファイルだし
登録の手順も場所も間違ってない。

ってか、(114 x 114)のはずなのに(0 x 0)だと言われ、
更に(57 x 57)にしろとか言ってる?

英語力はからっきしだから小生の解釈が間違ってるのかもしてないけど、
どうもエラーの意味がオカシイ気がする。

で、ちょっと調べてみたら先日のOSアップデートが原因らしいね。


既に解決法も案内されてるし。

いやぁ、アセったなぁ。(- -;)




【マクロミル】アンケート会員募集中!謝礼ポイント有

UIViewの角を丸めたり、影をつけたり

QuartzCoreをインポートしといて、

#import <QuartzCore/QuartzCore.h>


// 角を丸める

imv_a.layer.cornerRadius = 10;



// 影をつける

imv_a.layer.shadowOpacity = 1.0; // 影の濃さ


imv_a.layer.shadowOffset = CGSizeMake(3, 3); // 影の位置


imv_a.layer.shadowRadius = 2; // 0でくっきり、大きくするとモヤモヤ






【マクロミル】アンケート会員募集中!謝礼ポイント有

UIViewの角を丸めたり、ふち線をつけたり

QuartzCoreをインポートしといて、

#import <QuartzCore/QuartzCore.h>


// 角を丸める

[[lbl_debug layer] setCornerRadius:10.0];


[lbl_debug setClipsToBounds:YES];


// ふち線をつける


[[lbl_debug layer] setBorderColor:[[UIColor greenColor] CGColor]];


[[lbl_debug layer] setBorderWidth:3.0];






【マクロミル】アンケート会員募集中!謝礼ポイント有

タッチしたときの座標取得









- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event


{


UITouch *touch = [touches anyObject];


CGPoint location = [touch locationInView:self.view];



[super touchesBegan:touches withEvent:event];



NSLog(@"タッチ開始 %0.1f, %0.1f", location.x, location.y);    


}




-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event


{


UITouch *touch = [touches anyObject];


CGPoint location = [touch locationInView:self.view];



[super touchesBegan:touches withEvent:event];



NSLog(@"タッチ中 %0.1f, %0.1f", location.x, location.y);  


}




- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event


{


UITouch *touch = [touches anyObject];


CGPoint location = [touch locationInView:self.view];



[super touchesBegan:touches withEvent:event];



NSLog(@"タッチ終了 %0.1f, %0.1f", location.x, location.y);  


}





【マクロミル】アンケート会員募集中!謝礼ポイント有

#defineって便利ダナ!

.mファイル内、
#import文の下に、

#define HENSU 10

とか書いとくと、
以下、HENSUが10に差し替わる。

今回限りの定数とかに使うと便利~!
って今更知った。

ちなみに文字列の場合は、
#define moji @"あいうえお"




【マクロミル】アンケート会員募集中!謝礼ポイント有

Xcode4.2(iOS5)にしたらワーニングが2つ!

以前は問題なかったプロジェクトが
Xcode4.2にしたとたんワーニングが出るようになった。

で、なんじゃこりゃって思って調べてみたら
対応バージョンに対する互換性の問題らしいね。

解決法としては、
「Build Settings」の「architectures」に「armv6」も追加しとけばOK。

あー、びっくりした…。




【マクロミル】アンケート会員募集中!謝礼ポイント有

iPhoneアプリにadmob設置

久しぶりにadmob使ってみたら何かうまくいかなかったんで覚書。

設定法変わったのかな?

以下手順。

・フレームワーク追加。
 AudioToolbox
 MessageUI
 SystemConfiguration

・ヘッダに
#import "GADBannerView.h"

@interface~

GADBannerView *bannerView_;

・- (void)viewDidLoad{に
bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0,430,320,50)];
bannerView_.adUnitID = @"xxxxxxxxxxxxxxx";  // アプリのパブリッシャーID
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];
[bannerView_ loadRequest:[GADRequest request]];

・- (void)viewDidUnload{に
[bannerView_ release];
 




【マクロミル】アンケート会員募集中!謝礼ポイント有

ある座標からタッチした座標への角度を求める

ある座標(X,Y)から、タッチした座標(location.x,location.y)への角度Rの求め方。

double R = atan2((location.x - X),-(location.y - Y)) * (180 / M_PI);

if (R < 0) {
R += 360;
}




【マクロミル】アンケート会員募集中!謝礼ポイント有

NSDateで日付の計算

NSDate *dateA = [NSDate date]; // 今日
NSDate *dateB = [NSDate dateWithTimeIntervalSinceNow:-5*24*60*60]; // 5日前

NSTimeInterval since;
since = [dateA timeIntervalSinceDate:dateB];

int day = since/(24*60*60);

NSLog(@"%d日", day);

- 結果 -
5日




【マクロミル】アンケート会員募集中!謝礼ポイント有

UIViewの反転

// 上下反転処理
imv.transform = CGAffineTransformScale(imv.transform, 1, -1);

// 左右反転処理
imv.transform = CGAffineTransformScale(imv.transform, -1, 1);

// 元に戻す
imv.transform = CGAffineTransformIdentity;




【マクロミル】アンケート会員募集中!謝礼ポイント有

iAdとAdMakerのハイブリッド配信設定

iAdが読み込めなかったとき、AdMakerに切り替える覚書。

まず、双方とも広告が表示できる状況にしてから、
AdMakerの広告のみ、起動時に画面外に追いやっておく。








    AdMaker = [[AdMakerView alloc] init];


    [AdMaker setAdMakerDelegate:self];


    [AdMaker setFrame:CGRectMake(0, 430+50, 320, 50)];


    [AdMaker start];

画面下部への配置の場合はこんな感じ。

そしてiAdの設定を一部変更。








-(void)bannerViewDidLoadAd:(ADBannerView *)banner


{


    [self layoutForCurrentOrientation:YES];


    [AdMaker viewWillDisappear];


    [AdMaker setFrame:CGRectMake(0, 430+50, 320, 50)];


}




-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error


{


    [self layoutForCurrentOrientation:YES];


    [AdMaker viewWillAppear];


    [AdMaker setFrame:CGRectMake(0, 430, 320, 50)];


}

これでiAdが読み込めた場合はAdMakerの通信を停止して広告を隠し、
読み込めなかった場合は通信を再開して広告を復帰となる。

…と思う。(^^;)
まだ申請通ってないから分からんケド、
とりあえずテスト環境では問題ないみたい。





【マクロミル】アンケート会員募集中!謝礼ポイント有

変数の値をローカルに保存 - ゲームのセーブとか

// ロード
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; // 取得
comboMax = [ud integerForKey:@"KEY_comboMax"];  // KEY_comboMaxの内容をint型として取得
scoreMax = [ud integerForKey:@"KEY_scoreMax"];  // KEY_scoreMaxの内容をint型として取得

// セーブ
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; // 取得
[ud setInteger:comboMax forKey:@"KEY_comboMax"]; // int型のcomboMaxをKEY_comboMaxというキーで保存
[ud setInteger:scoreMax forKey:@"KEY_scoreMax"]; // int型のscoreMaxをKEY_scoreMaxというキーで保存
[ud synchronize];  // 反映





【マクロミル】アンケート会員募集中!謝礼ポイント有

証明書のエラー? - その後2

引き続き例のエラーの件。

warning: Application failed codesign verification.  The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)



小生の場合、プロジェクト名が長すぎると出るみたいなんだけど、
そのまま申請してみたら通った。

バグ?




【マクロミル】アンケート会員募集中!謝礼ポイント有

指定したViewを最前面に持ってくる方法

これが分からなくてカナリの時間悩んでしまった…。

[self.view bringSubviewToFront:testView]; // 最前面に持ってくる





【マクロミル】アンケート会員募集中!謝礼ポイント有

View間で変数の値を渡すには

Tab Bar の双方のビュー間で変数の値を渡す方法が分からず四苦八苦。

最終的にグローバル変数を使って参照する方法に至ったんだけど、
なんか違う気がする…。

でもとりあえず欲しい結果にはなったんで覚書。


~UITextFieldのテキストを受取る場合~

・AppDelegate.hに同じ型のグローバル変数を定義
 #import <UIKit/UIKit.h>
 UITextField *gname1;

・FirstViewController.hでテキストフィールドを用意
 @interface FirstViewController : UIViewController<uitextfielddelegate> {
 IBOutlet UITextField *name1;

・FirstViewController.mにインポートしてテキストフィールドを格納
 #import "AppDelegate.h"
 gname1 = name1; //グローバル変数に格納

・SecondViewController.hで受け取り側の変数用意(今回はNSString)
 NSString *name[10];

・SecondViewController.mで受け取る
 name[0] = gname1.text;




【マクロミル】アンケート会員募集中!謝礼ポイント有

メソッド、引数、戻り値

まだシックリこないので、念のため。

- ヘッダ -

- (int)keisan:(int)i1:(int)i2;

- メソッド -

- (void)viewDidLoad
{
[super viewDidLoad];

int a = 1;
int b = 2;
int c = [self keisan:a:b];

NSLog(@"%d",c);
}

- (int)keisan:(int)i1:(int)i2{

int d = i1 + i2;
return d;
}


なんかカナリどーでもいー事書いてるよなぁ…。
物覚えの悪さを痛感する。orz




【マクロミル】アンケート会員募集中!謝礼ポイント有

標準テンプレの罠?

View-based Applicationテンプレートでプロジェクトを作成して、
そのまま実行するとiOS3.2の場合エラーになる。

iOS4.0以降なら大丈夫なのに、
iOS3.2(iPadシム)だと以下ような感じでフリーズ。

----------------------------------------
self.window.rootViewController = self.viewController;
で、
Thread 1:Program received signal: "SIGABRT".
と、表示されてシミュレーターがフリーズ。
----------------------------------------

初心者ゆえ、何が何だか分からないんだけど、
調べた結果、一応の解決を見たので覚書。

ようは「rootViewController」ってのがiOS4.0以降でないとイカンらしい。

なのでエラーが出ている以下の行を、
 self.window.rootViewController = self.viewController;

次のように変更すると良いらしい。
 [self.window addSubview:self.viewController.view];

とりあえず小生の環境では改善できたのでヨシとする。




【マクロミル】アンケート会員募集中!謝礼ポイント有

線を引いてみる

・Window-based Applicationでプロジェクト作成

・[New File...] > [iOS] > [Cocoa Touch] > [Objective-C class]
 Subclass of 「UIView」としてUIViewを継承したクラスを作成。
 (クラス名:lineView)

・IBでViewをはりつけ、
 [Custom Class]の[Class]を「lineView」にする。

・「lineView.m」に

- (void)drawRect:(CGRect)rect {
 CGContextRef context = UIGraphicsGetCurrentContext();
 CGContextMoveToPoint(context, 0,0);
 CGContextAddLineToPoint(context, 320,460);
 CGContextStrokePath(context);
}




【マクロミル】アンケート会員募集中!謝礼ポイント有

アプリの多言語化

English環境でEnglishとJapaneseの2言語化する場合。

・プロジェクトを右クリックしてファイルを追加。
 [New File...] > [iOS] > [Resouce] > [Strings File]
 名前は「InfoPlist.strings」にする。

・できた「InfoPlist.strings」をクリックして、
 Xcode4右ペインの[Localization]の[+]マークをクリック。
 [Japanese]を選択。

・「InfoPlist.strings」の下にそれぞれの言語の設定ファイルができる。
 内容はアプリ名とアプリのアイコン表示名らしい。

 CFBundleName = "アプリ名";
 CFBundleDisplayName = "アプリ名";

 とか書いとけば良いっぽい。

・同じ手順で「Localizable.strings」の設定ファイルも作る。
 こっちの中身は、

 Localizable.strings(Japanese)には
 "森林" = "森林";

 Localizable.strings(English)には
 "森林" = "Forest";

 とかいった感じ。

 実際にプログラム内で使う場合は、

 NSLocalizedString(@"森林", @"")

 と書くと、日本語環境で「森林」、英語環境では「Forest」と表示される。

 設定ファイルは、左がキー文字、右が変換後の文字となるので、
 上の例だと日本語の設定ファイルは無くても大丈夫。(と思う)




【マクロミル】アンケート会員募集中!謝礼ポイント有

Deployment Target は 4.0 に

Appleからこんな感じのメールが届いたので、

----------------------------------------
Note: You have indicated that your binary requires iOS 4.3 or later. Apps that require iOS 4.3 or later will not be available to Verizon iPhone users. If your app could be compatible with earlier iOS versions, you may want to reject your binary and upload a new one that indicates the earliest compatible iOS.
----------------------------------------

iOS Application Target の Deployment Target は
「4.0」あたりにしておくのが無難らしい。

Xcode4の標準設定だとiOS4.3専用アプリに設定されてるけど、
それ以前のバージョンとも互換性を保ったほうがイイよ!
って事だね。




【マクロミル】アンケート会員募集中!謝礼ポイント有

検索フォーム
最新記事
カテゴリ
HG (4)
FG (2)
MG (9)
RG (8)
リンク
このブログをリンクに追加する
月別アーカイブ
アクセスランキング
[ジャンルランキング]
趣味・実用
2239位
アクセスランキングを見る>>

[サブジャンルランキング]
模型・プラモデル
325位
アクセスランキングを見る>>
カウンター