NSDateの件

文字列からNSDateを生成

NSDateFormatter *f = [[[NSDateFormatter alloc] init] autorelease];
[f setDateFormat:@"yyyy-MM-dd"];
return [f dateFromString:string];	

NSDateから曜日を取得

NSCalendarからNSDateComponentsを取得する

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *c = [calendar components:NSWeekdayCalendarUnit fromDate:date];
return [c weekday];

weekdayは1から7までの数値。それぞれ、日曜日から土曜日に対応している。
上記例では、compontensにNSWeekdayCalendarUnitのみしか指定していない為、weekdayしか取得できない。
その他のプロパティ(year,month,day,hour,min,sec等)を取得する場合には、下記のようにする

NSDateComponents *c = [calendar components:
  NSYearCalendarUnit
  |NSMonthCalendarUnit
  |NSDayCalendarUnit
  |NSHourCalendarUnit
  |NSMinuteCalendarUnit
  |NSSecoundCalendarUnit
  |NSWeekdayCalendarUnit
 fromDate:date];

各CalendarUnitはXcodeが補完してくれる。それをビット演算子「|」で繋ぐ。
NSWeekdayCalendarUnitとNSWeekCalendarUnitは違うので注意。