2012-01-09 5 views
0

これは、「不正な受信者タイプ 'NSIntegar」(別名「int」)というエラーを表示します。 UITextFieldタグを文字列に変換する

NSString *tempTag = [((UITextField *)[self.dataSetDictionary objectForKey:key]).tag stringValue]; 

は、文字列にUITextFieldのタグを型キャストしようとしています。私は[NSString stringWithFormat]を使うことができますが、なぜこの方法がうまくいかないのか分かりません。

答えて

2

tagは、NSIntegerデータ型のUIViewオブジェクトのプロパティです。メッセージを渡すことはできません。 stringValueNSNumberで呼び出す必要があります。あなたがやるべきことは

NSString *tempTag=(NSString*)[[NSNumber numberWithInt:[(UITextField*)[self.dataSetDictionary objectForKey:key] tag]] stringValue]; 
+0

これは私に "expected": ""最後にエラーが出ます。 – Padin215

+0

@ Log139おっと、「]」を間違えてしまった。編集したものを試してください – MadhavanRP

+0

ha、そうです。私はどこに欠けているのか分からなかった。ありがとう。 – Padin215

4

あなたはこの方法では動作しません理由だけで把握することはできませんstringWithFormat:

UITextField *textField = (UITextField *)[self.dataSetDictionary objectForKey:key]; 
NSString *tempTag = [NSString stringWithFormat:@"%d", textField.tag]; 

を使用する必要があります。

tagはスカラー整数でありオブジェクトではないためです。 stringValueのようなメッセージを非オブジェクトに送信することはできません。

+0

オブジェクトではありません。私はちょうどそれが持っているべきであるように思えたときに他の方法が働いていなかった理由を理解しようとしていました。 – Padin215

-3

NSIntegersですうん、この方法は、作業を行い

more info