[iOS]Warning: The バンドルリソースをコピー build phase contains this target’s Info.plist file

この警告はinfo.plistを何らかの理由で削除して、再度追加した時に表示されるっぽい。

info.plistを右クリック → 情報を見る → ターゲット のチェックを外せばOK

Posted under 未分類 by tetsuo on 金曜日 22 4月 2011 at 1:19 AM

[iOS]ld: warning: directory ‘…’ following -F not found エラーの解消法

ターゲットのアプリケーション名を右クリック>情報を見る

検索パス>ライブラリ検索パスをダブルクリック

既に存在しないパス(これがワーニングを出している)を削除

Posted under 未分類 by akira on 木曜日 21 4月 2011 at 6:04 PM

[xcode]switch~case 内で記述できない変数の宣言

 


switch (a)

{

case 0 :

NSDate* date = [NSDate new];

break;

}


 

特になんてことないこの記述はエラーになる。

 

error: expected expression before ‘NSDate’

 

以下のようにして対処する。

 


switch (a)

{

case 0 :

{

NSDate* date = [NSDate new];

}

break;

}


 

マクロの中で変数の宣言している場合などはわかりにくいが、エラーメッセージで判断する。

Posted under 未分類 by akira on 月曜日 21 3月 2011 at 1:57 AM

[iOS]UIViewContentModeScaleAspectFitの自動サイジングが上手くいかない


UIImageView* iview = [[UIImageView alloc] init];

// 720 x 960 のイメージ

UIImage* image = [UIImage imageNamed:@"sample.jpg"];


iview.frame = CGRectMake(0,0,320,480);

iview.image = image;

iview.contentMode = UIViewContentModeScaleAspectFit;


 
 
これだと上手くいかなくて、
 
 

iview.contentMode = UIViewContentModeScaleAspectFit;

iview.image = image;


 

これだと上手くいく。なんのことはない、image 設定する前に contentMode 設定しなさいね、ってこと。。。

①でも上手く「いっちゃう」ことはある。まぁ、xcode だし、なんとなく動いちゃって後でハマることは稀によくある^^

Posted under 未分類 by akira on 金曜日 18 3月 2011 at 4:16 PM

[iOS]実機でUIImage(ファイル)が読み込めない

 気づいてしまえばなんてことはないが、

 

Simulator

ファイルの大文字小文字を意識しない。普通に動く

 

実機

ファイルの大文字小文字を意識する。違っていると読み込めない

 

Simulator で意識してくれるのが有り難いが・・・Windows などでファイル名の適当さに慣れてしまっていたら要注意。

Posted under 未分類 by akira on 水曜日 16 3月 2011 at 10:37 PM

[iOS]incomplete implementation of class

 incomplete implementation of class の警告は、

宣言してるメソッドが全て実装されてない時に発生するらしい。

不必要になったメソッドを.mファイルから消したら、.hファイルでも消す事をお忘れなく。

Posted under 未分類 by tetsuo on 水曜日 2 3月 2011 at 1:11 AM

[iOS]missing sentinel in function call

 missing sentinel in function callという警告が発生したい場合は、

可変長引数なのに最後にターミネーターとしての「nil」を付けていないのが原因。 

1
2
3
4
5
NSArray *arrTxt = [NSArray arrayWithObjects : @"東京",
                                              @"大阪",
                                              @"名古屋",
                                              nil
                  ]

こうするといいみたい。

Posted under 未分類 by tetsuo on 水曜日 2 3月 2011 at 1:01 AM

[iOS]warning : incompatible Objective-C types assining ‘struct NSArray’ ~

ついでにこんなワーニングも。

 

なにをしようかというと、NSMutableArray NSString を入れて名前リストを作り、それをソートしようとしていた。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
NSMutableArray* a = [[NSMutableArray alloc] init];
 
[a addObject:@"22382"];
[a addObject:@"32722"];
[a addObject:@"00487"];
[a addObject:@"98320"];
[a addObject:@"11732"];
[a addObject:@"30532"];
 
a = [a sortedArrayUsingSelector:@selector(compare:)];
 
for (int i = 0; i < [a count]; i++)
{
  // 綺麗に数字が並ぶはず
  NSLog(@"%@", [a objectAtIndex:i]);
}

 

NSString には比較に使えるメソッド compare があるのでこれで OK だろう。と思いコンパイル。すると、

 


incompatible Objective-C types assining ‘struct NSArray *’, expected ‘struct NSMutableArray *’


 

ああなるほど、NSArray じゃ駄目か。って全く NSArray など記述した記憶がない。

エラーメッセージを頼りに海外のサイトなど見るも、

 


問についてあなたの最初の、いつ NSLogは 形式%@を見て、それが使用する 記述 クラスメソッドをしてください。 


 

日本語難しいネ! 自動翻訳に頼るのがそもそも間違いか・・・。

エラーではなく別のキーワードでググりなおすことにした。文字列リストのソートならいっぱい他にも例があるだろうし。

というわけで、解決策はこうだった。さきほどの 10 行目を置き換える。

 

 

1
[mfiles sortUsingSelector:@selector(compare:)];

 

どうしてこうなのか? わからん・・・と思ったが、戻りもらってるってことはむしろ

NSArray で使え、って警告・・・?

英語も自動翻訳、xcode も初めて日も浅い自分はこれ以上深入りせず。とりあえず動いたからヨシ。

Posted under 未分類 by akira on 日曜日 27 2月 2011 at 10:49 PM

[iOS]warning: ‘directoryContentsAtPath:’ is deprecated

 表題では、以下のようなコードを書いたときにワーニングが出る。

 

1
NSArray* files = [[NSFileManager defaultManager] directoryContentsAtPath:path];

 

訳せば「directoryContentsAtPath: は今後消える可能性があります」ということ。

使っていてもいいことはないので代替する関数を探す。

 

たとえば、directoryContentsAtPath option(alt) + ダブルクリックすると内容が表示されるのだが、

そこにある contentsOfDirectoryAtPath: error: を使うことで回避する。

 

Posted under 未分類 by akira on 日曜日 27 2月 2011 at 9:20 PM

[iOS]ベースSDKが別のものの対処(2)


 There is no SDK with the name or path ’iphoneos3.2′


 

ネット上の誰かが公開しているプロジェクトは非常に有り難い参考例だが、ターゲットが自分の持っていない OS のものであることが多い。

コンパイル時に上記のエラーが出てしまうので、以前記事にした方法を行った。

いつもはそれで OK なのだが、今回は、それでも動かなかった。

 

以前の記事

 ベースSDKが別のものの対処

 

この記事でダメだった方は次の方法を試してほしい。

 

 

Base SDK Missing と書かれたボックスの上で Option(Alt) + クリックをする。するとこういう画面が出る。

 

 

ここでリンク先で選んだ iOS のバージョンと同じものを選ぶ。

その後1度ビルドをクリーンにし、プロジェクトを閉じる。再起動してビルドすればエラーが解消されている。

Posted under 未分類 by akira on 日曜日 27 2月 2011 at 5:12 PM