2013年2月16日土曜日

シミュレータがいきなり使えなくなった(No provisioned iOS devices are available with a )

Code Sign error: The identity 'iPhone Developer' doesn't match any valid, non-expired certificate/private key pair in your keychains



No provisioned iOS devices are available with a compatible iOS version. Connect an iOS device with a recent enough version of iOS to run your application or choose an iOS simulator as the destination.





こんなエラーがでて、あたふたしました。

ググっても全然わからない!!

Developer登録とかしていないし。。。

証明書とか作成した記憶もない。。。

とりあえず、シミュレータが起動する他のプロジェクトと比較した結果。。。





このラベル??がiOS Deviceになっていたので、iPhoneを選択すると、
問題解決いたしました。






原因はわかりませんが、自分はこの問題2回目で、
やっと解決できました。。

前回このエラーが出た時は1からプロジェクトを再作成しました。
はい。



2013年2月12日火曜日

ould not load NIB in bundle: 'NSBundle

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle 


というエラーが出現!!

storyboardが良くないときにおこるエラーのようです。

うーん。。

わからない

2013年2月8日金曜日

Apple Mach-O Linker Error


symbol not found for architecture i386



"_glBindFramebufferOES", referenced from: Apple Mach-O Linker Error こんなエラーが出てしまったら、 フレームワークの追加が必要かもしれません。。
このページで追加させましょう!!

Unknown type name "", did you mean

またまた、エラーです。


Unknown type name "変数名", did you mean 候補の変数名


こんなエラーが出てしまいました。
did you mean ?

この優しさが逆につらいです。

変数名付けるのが下手な自分が全て悪いのですが。

原因はだいたいimportが原因です。


失敗 例)

dominica.hファイル

#import "kongo.h"


kongo.hファイル

#import "dominica.h"


このように2つのファイルで参照しあうと、エラーとなります。
循環参照??


成功 例)


dominica.hファイル

@Class kongo;

dominica.mファイル

#import "dominica.h"
#import "kongo.h"





kongo.hファイル

@Class dominica;

kongo.mファイル



#import "dominica.h"
#import "kongo.h"





no visible @interface for declares the selector

no visible @interface for declares the selector

関数にこんな赤色のエラーが出ました。


ググってもヤホっても見つからない!!


よくコードをみたら解決!!

関数の引数の渡し方に問題がありました。


hファイルで宣言した情報(引数の型とか引数名)は全て書かないと行けないのですね。

VB感覚で省略可能かと思ってました。




2013年2月4日月曜日

used as the name of the previous parameter rather than as part of the selected

used as the name of the previous parameter rather than as part of the selected


こんなワーニングメッセージが出るようになりました。。。。

ワーニングなので、気にしなくてもいいのですが、

何か一方的に注意されるのもしゃくなので、修正してみました。

ポイントは
関数定義の方法でした。

修正前

-(void)Particle:(int) iCap:(int) iSpan;

修正後
-(void)Particle:(int)iCap intSpan:(int)iSpan;



引数名が増えている??
とか、思ったかたもいると思いますが、そうではなくて

-(void)メソッド名:(引数型)引数名 引数説明:(引数型)引数名;

引数説明という項目が新しく増えたらしいです。
個人的には引数の説明なんて、初めて聞いたのですが、
Objective-CとかCでは有名な儀式的なものなのでしょうか?

使い方はよくわからないのですが、とりあえず
これで、ワーニングは消えました!!

前向きに考えると、きっと引数説明とはすごい便利なものだと思うので。。。。


2000円札くらい。


これから管理している全てのアプリのソースの修正でも
してみます。。。

2013年2月3日日曜日

Missing context for method declaration


Missing context for method declaration


こんなエラーが出たときは


#import "Renderer.h"
@implementation Renderer
@synthesize glViewController:


上記3つの順番を変えてみると、うまくいく事があります。

implementation忘れとかでも、出るエラーです。

2013年2月2日土曜日

Objective-Cでコンストラクター?(init)

JAVA感覚でコンストラクター相当な処理を買いてみました。

Objectの生成時に自動的に呼ばれるメソッドを作成いたしました。


/**
 * イニシャライズな処理(コンストラクタ相当)
 */
- (id)init
{
    if(self == [super init]) {
        // 初期化処理をここに記述
    }
    return self;
}


initクラスを作成すると、生成時に呼ばれます。


■サンプルソース
新規ファイルでTestClassを作成

hファイル

#import <Foundation/Foundation.h>

@interface TestClass : NSObject{
}

@property(weak,nonatomic)NSString* sText;

-(id)init;
-(void)test;
@end


mファイル

#import "TestClass.h"

@implementation TestClass

/**
 * 初期化処理(コンストラクタ相当)
 */
- (id)init
{
    if(self == [super init]) {
        // 初期化が成功したので初期化処理を行う
        _sText = @"コンストラクター";
    }
    return self;
}

-(void)test{
    _sText = @"普通のクラス";
}

@end

ViewController

mファイル

- (void)viewDidLoad
{
    id obj = [[TestClass alloc] init];
    
    NSLog(@"%@", [obj sText]);
    [obj test];

    NSLog(@"%@", [obj sText]);
    
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}





Logに注目すると、
初期のログの文字列が変更された事が
わかると思います。