第2回はNSStringまわりの覚書。
さっきのメソッド間を維持する際に、NSStringとNSMutableString、NSArrayとNSMutableArrayを使ったので、その際にはまったところの覚書です。
基本重要なところつまみ食いします。
<NSString NSArray関係>
<参考>http://iphone-developer.sblo.jp/index-3.html
NSStringについて
数値と文字の変換
NSString → int
int num = [@"123" intValue];
int → NSString
NSString *str = [NSString stringWithFormat:@"%d", 123];
double → NSString
NSString *str = [NSString stringWithFormat:@"%f", 42.195];
toString
NSString *str = (NSString*)object;
これを使って、NSMutableArrayに含まれているデータ(double型)をNSStringにいれる
NSMutableArrayを使って、純粋に代入しようと思うと、
too many arguments to method call expected 1 have 2のエラーがでる。
@interface内でNSMutableArray *_mArray;
//mArrayにdouble型をセット。
_mArray = [[NSMutableArray alloc]init];
[_mArray addObject:[NSNumber numberWithDouble:nowLocation.latitude]];
[_mArray addObject:[NSNumber numberWithDouble:nowLocation.longitude]];
//緯度をセット
NSMutableString *sendLatitude =[[NSMutableString alloc] initWithString:@""];
double dLatitude = [[_mArray objectAtIndex:0] doubleValue];
NSString *dLatitudeLabel = [NSString stringWithFormat:@"%f", dLatitude];
NSLOG(@"%f", dLatitude);
[sendLatitude setString:dLatitudeLabel];
//経度をセット
NSMutableString *sendLongitude = [[NSMutableString alloc] initWithString:@""];
double dLongitude = [[_mArray objectAtIndex:1] doubleValue];
NSString *dLongitudeLabel = [NSString stringWithFormat:@"%f", dLongitude];
NSLOG(@"%f", dLongitude);
[sendLongitude setString:dLongitudeLabel];
ちょっとまたRailsまわりに戻ります。
メソッド間のデータ保持ができるようになったので、少しですがまともになりましたw