2011-04-26 6 views
2

こんにちはすべて私は基本的な質問をするつもりです私の質問のために多くのリンクを検索しましたが、 :以下のコードパラメータとしてcgrectを渡す方法とipadで戻り値の型としてcgrectを取得する方法

-(void)viewDidLoad{ 
    CGRect testRect=getNewRect(self.view.frame); 
} 
を修正

私はRECT値を渡したいし、そのためのいくつかの変換を使用して、同じ型を返す私は1つの方法を書いたが、それは私がそれは文法的に間違っている可能性があります知っているエラーを与えているしてください

自分の方法はこちら

CGRect getNewRect(CGRect normalRect){ 
    //some transformation 
    return tranfermedrect; 
} 

+2

動作するかどうか – Eimantas

+0

メッセージは、メソッド名を変更してから「最新のメソッド名の競合するタイプ」を返す場合は、この "相反するタイプのgetNewRect"のようです。 – ajay

+0

早期リプレイをお寄せいただきありがとうございます...構文的には... – ajay

答えて

3

使用される次の行を追加します。以下

-(void)viewDidLoad{ 
    CGRect testRect= [self getNewRect:self.view.frame]; 
} 

-(CGRect) getNewRect:(CGRect) normalRect{ 

    //some transformation 
    return tranfermedrect; 
} 

で試してみてください..事前に私にあなたの提案の感謝を与えます。

[self yourFunction:[NSValue valueWithCGRect:rectFrame]]; 

上記の行は単純なメソッド呼び出しであり、objective-CではパラメータとしてCGRectを送信できません。 CGValueをNSValueに変換する必要があります。呼び出された関数で

あなたは、私はそれはあなたを助けることを願っていますNSValue

yourView.frame = [rect CGRectValue]; 

からGGRectを取得しています。このエラーは何

+0

"のようなエラーが発生します。これは、CGRectをパラメータとして送信することはできません。** **実際にはありません。** 'CGRect'を受け入れるメソッドの例については、引数やメソッドは 'CGRect'値を返します。 –

+1

@Bavarious、ok ...サーは私がどのように関数としてのパラメータとしてCGRectを送るかを見せてください???????? – Tirth

+0

この質問に対するその他の回答に記載されています。 –

1

あなたはあなたの問題を解決します.hファイルに以下

-(CGRect) getNewRect:(CGRect) normalRect ; 
+1

Obj-Cクラス内でC関数を使用することは問題ではありません。 – kubi

+0

なぜ彼はそれをしてはいけないのですか?また、コードに固有のC++はありません。 –

+0

@kubi:あなたは正しいですが、私はそこにC++を紹介しました – Jhaliya

0
-(void)viewDidLoad{ 
    CGRect testRect= [self getNewRect:self.view.frame]; 
    NSLog(@"New rect %@",NSStringFromCGRect(testRect)); 
} 

-(CGRect) getNewRect:(CGRect) normalRect{ 

    //some transformation 
    return tranformedRect; 
} 

を参照してください?
+0

私にエラーを何度か与えています...私はviewDidLoadでない状態としてtestRectを宣言しました – ajay