2011-12-15 4 views
0
NSDateFormatter *formatter; 
    NSString *dateString; 
    formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"dd-MM-yyyy HH:mm a"]; 
    dateString = [formatter stringFromDate:[NSDate date]]; 
    [formatter release]; 

    appDelegate.myCallLogDict = [[NSMutableDictionary alloc]init]; 
    [appDelegate.myCallLogDict setObject:phoneNo forKey:@"CallLogPhoneNoKey"]; 
    [appDelegate.myCallLogDict setObject:dateString forKey:@"CallLogTimeStampKey"]; 

を使用するときに認識されていないセレクタがインスタンスに送信されたIはnsmutabledictioneryに電話番号と時間を記憶されていないと私は以下になど、そのdictionery値にアクセスしたい -[NSCFString objectAtIndex:]:nsmutabledictionery

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath method 

cell.detailTextLabel.text = [[appDelegate.myCallLogDict objectForKey:@"CallLogTimeStampKey" ]objectAtIndex:row]; 
cell.textLabel.text = [[appDelegate.myCallLogDict objectForKey:@"CallLogPhoneNoKey"] objectAtIndex:row]; 
私は上記のコードを実行すると

iは以下のエラーを取得

-[NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x5b227e0 
2011-12-15 10:06:09.050 MyDialer[1090:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x5b227e0' 
私を助けてください

ありがとうございます。

+0

あなたはmyCallLogDictのプロパティを作成し、appappDelegateで合成しましたか? – Maulik

+0

はい私は、アプリケーションの代理人でそれをしました – user198725878

+4

" - [NSCFString objectAtIndex:]:認識できないセレクタ"は、NSStringに対して 'objectAtIndex:'操作を実行しようとしたことを意味します。 –

答えて

1

キーデータを配列に保存してから、その配列にobjectAtIndexを使用する必要があると思います。

1

辞書には、CallLogTimeStampKeyキーの文字列が含まれていますが、1つの文字列が挿入されていると想定しています。

+0

コードを介して説明pls – user198725878

+1

@ user198725878 - NSLogs、plsを挿入し、それを自分で把握します。 –

+0

'... setObject:dateString ...'は単一の文字列を挿入します。 '... objectForKey:@" CallLogPhoneNoKey "] objectAtIndex:row]'は、辞書の内容が配列であると想定します。 – morningstar

3

ことは、これを試してみてください。

cell.detailTextLabel.text = [appDelegate.myCallLogDict objectForKey:@"CallLogTimeStampKey"]; 
cell.textLabel.text = [appDelegate.myCallLogDict objectForKey:@"CallLogPhoneNoKey"]; 

あなたは次のような問題があった私のケースでは、単一の文字列を取得しているよう

[appDelegate.myCallLogDict objectForKey:@"CallLogPhoneNoKey"]; 
1

によってobjectAtIndex使用する必要はありません。

    は、
  1. プロパティがあります。@property (nonatomic, retain) NSIndexPath *selectedCell;
  2. EDゲッター

    • (NSIndexPath *)と@synthesize selectedCell = _selectedCell;
    • が {をselectedCellようなら{ _selectedCell = [NSIndexPath indexPathForRow:self.selectedImageNumber inSection:kTexturesListSection(_selectedCell!)。 } 戻り値_selectedCell; }

  3. とゲッターは

    • (NSIndexPath *)selectedCell に変更された後に、コード内のいくつかの場所は、コールself.selectedCell.rowクラッシュ

を引き起こし{ if(!_selectedCell){ _selectedCell = [[NSIndexPath indexPathForRow:self.selectedImageNumber inSection:kTexturesListSection] retain]; } 戻り値_selectedCell; }

バグが消えました。このバグはiOS 5でのみ認識されています。

関連する問題