Cocoa API解説(macOS/iOS)

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。

目次

-initWithFormat:locale:arguments:

INDEX>Foundation>NSString>

formatで指定した書式と場所で文字列を作成、初期化します
-(id)initWithFormat:(NSString *)format
             locale:(NSDictionary *)dictionary
             arguments:(va_list)argList

ののじ 【かぼちゃ切りの強い味方! 】 かぼーちょう SGソフト LUK-E014GY

ののじ 【かぼちゃ切りの強い味方! 】 かぼーちょう SGソフト LUK-E014GY

解説

formatで指定した書式と場所で文字列を作成、初期化します。
【format】
C関数printf()+αです。
● %@  文字
● %c 一つの文字
● %d intを符号付き10進数で表示
● %o intを符号付き8進数で表示
● %u intを符号なし10進数で表示
● %x intを符号なし16進数で表示「abcdef」を使用
● %X intを符号なし16進数で表示「ABCDEF」を使用
● %e doubleを[-]d.dddd e [+/-]dddの指数表示
● %f doubleを[-]dddd.ddddで表示
● %.2f doubleを小数点第2位まで表示する
● %.1f doubleを小数点第1位まで表示する
● %g doubleをeかfのうち、表現できる制度で短い方で表示
● %s 文字列を最初のNULL文字まで表示
● \n 改行
● \r 改行

返り値

( id )

文字列(NSStringまたはそのサブクラス)

引数

( NSString * )format

書式指定された文字列

( NSDictionary * )dictionary

辞書

( va_list )argList

引数リスト

クラス

NSString

Instance Methods

使用可能

10.0

参照

例文

#pragma mark initWithFormat:locale:arguments:
- (NSString *)stringByAppendingFormat002:(NSString *)format, ... {
    //change separator
    NSDictionary *dic= [[NSDictionary alloc] initWithObjectsAndKeys:
                        @"!",@"NSDecimalSeparator",//separator
                        nil];             
    
    va_list args;
    va_start(args, format);
    NSString * result = [[NSString alloc ]initWithFormat:format locale:dic arguments:args];
    va_end(args);
    return result;
}

-(NSString *)method023
{
    NSString *aString = [self stringByAppendingFormat002:@"%@ %s %.2f",@"2","a",200.344,nil];
    
    return aString;    
}
#import "MyObject.h"
@implementation MyObject
- (IBAction)myAction:(id)sender
{
va_list vList;
vList = dynamicArgument(5 , 10 , 20 , 30 , 40 , 100);
NSDictionary *dic= [[NSDictionary alloc] initWithObjectsAndKeys:
                 @",",@"NSDecimalSeparator",//小数点区切り
             		nil];	
NSString *myString = [[NSString alloc] initWithFormat:@"%d\n"  locale:dic arguments:vList];     
NSLog(myString);
}
va_list dynamicArgument(int arg_num , ...) {
	va_list args;
	int p , count;
	if (arg_num < 1) return nil;
	va_start(args , arg_num);
        
        printf("項目数 = %d\n" , arg_num);
	for (count = 0 ; count < arg_num ; count++) {
		p = (int)va_arg(args , int *);
	}
        	va_end(args);
	return args;
        }
@end

編集時のバージョン

OS X 10.8
iOS 6.1