Foundation Functions

2013. 05. 06
・フレームワーク
Foundation/Foundation.h

・宣言
NSBundle.h
NSByteOrder.h
NSDecimal.h
NSException.h
NSObjCRuntime.h
NSObject.h
NSPathUtilities.h
NSRange.h
NSZone.h



●概要

この章は、Foundationフレームワークで定義されている、関数と関数のようなマクロについて説明しています。



●タスク別の関数

・アサーション

アサーションについての詳細は『Assertions and Logging Programming Guide』を参照してください。

NSAssert
NSAssert1
NSAssert2
NSAssert3
NSAssert4
NSAssert5
NSCAssert
NSCAssert1
NSCAssert2
NSCAssert3
NSCAssert4
NSCAssert5
NSCParameterAssert
NSParameterAssert

・バンドル

文字列ファイルの生成についての詳細は、『Internationalization Programming Topics』の『Localizing String Resources』を参照してください。

NSLocalizedString
NSLocalizedStringFromTable
NSLocalizedStringFromTableInBundle
NSLocalizedStringWithDefaultValue

・バイトオーダー

NSConvertHostDoubleToSwapped
NSConvertHostFloatToSwapped
NSConvertSwappedDoubleToHost
NSConvertSwappedFloatToHost
NSHostByteOrder
NSSwapBigDoubleToHost
NSSwapBigFloatToHost
NSSwapBigIntToHost
NSSwapBigLongLongToHost
NSSwapBigLongToHost
NSSwapBigShortToHost
NSSwapDouble
NSSwapFloat
NSSwapHostDoubleToBig
NSSwapHostDoubleToLittle
NSSwapHostFloatToBig
NSSwapHostFloatToLittle
NSSwapHostIntToBig
NSSwapHostIntToLittle
NSSwapHostLongLongToBig
NSSwapHostLongLongToLittle
NSSwapHostLongToBig
NSSwapHostLongToLittle
NSSwapHostShortToBig
NSSwapHostShortToLittle
NSSwapInt
NSSwapLittleDoubleToHost
NSSwapLittleFloatToHost
NSSwapLittleIntToHost
NSSwapLittleLongLongToHost
NSSwapLittleLongToHost
NSSwapLittleShortToHost
NSSwapLong
NSSwapLongLong
NSSwapShort

・小数

小数点演算を行う場合、NSDecimalNumberクラスを使用することができます。

NSDecimalAdd
NSDecimalCompact
NSDecimalCompare
NSDecimalCopy
NSDecimalDivide
NSDecimalIsNotANumber
NSDecimalMultiply
NSDecimalMultiplyByPowerOf10
NSDecimalNormalize
NSDecimalPower
NSDecimalRound
NSDecimalString
NSDecimalSubtract

・例外処理

NSException.hで実装されている以下のマクロを検索することができます。
Exception Programming Topics』では、これらマクロの説明と使用例を示しています。
これらのマクロは、Mac OS X v10.3以降とそれより前のOSバージョンのシステムで実行する必要がある場合に役立ち、@try、@catch、@throw、@finallyといったObjective-Cのコンパイラ指示子を使用する必要があります。
これらコンパイラ指示子についての詳細は、『The Objective-C Programming Language』の『Exception Handling』を参照してください。

NS_DURING
NS_ENDHANDLER
NS_HANDLER
NS_VALUERETURN
NS_VOIDRETURN

・オブジェクトの割り当てと解放の管理

NSAllocateObject
NSCopyObject
NSDeallocateObject
NSDecrementExtraRefCountWasZero
NSExtraRefCount
NSIncrementExtraRefCount
NSShouldRetainWithZone

・Objective-Cのランタイムとの交信

NSGetSizeAndAlignment
NSClassFromString
NSStringFromClass
NSSelectorFromString
NSStringFromSelector
NSStringFromProtocol
NSProtocolFromString

・ログ出力

NSLog
NSLogv

・ファイルパスの管理

NSFullUserName
NSHomeDirectory
NSHomeDirectoryForUser
NSOpenStepRootDirectory
NSSearchPathForDirectoriesInDomains
NSTemporaryDirectory
NSUserName

・範囲の管理

NSEqualRanges
NSIntersectionRange
NSLocationInRange
NSMakeRange
NSMaxRange
NSRangeFromString
NSStringFromRange
NSUnionRange

・捕捉されない例外ハンドラ

捕捉されない例外ハンドラ関数は、プログラムが終了したために例外が捕捉できないというもので、通知の送信中に例外が発生した場合は除きます。

NSGetUncaughtExceptionHandler
NSSetUncaughtExceptionHandler

・Core FoundationとARCの調和

CFBridgingRetain
CFBridgingRelease

・メモリ管理

NSAllocateMemoryPages
NSCopyMemoryPages
NSDeallocateMemoryPages
NSLogPageSize
NSPageSize
NSRealMemoryAvailable
NSRoundDownToMultipleOfPageSize
NSRoundUpToMultipleOfPageSize
NSMakeCollectable

・ゾーンの管理

ゾーンはiOS上やOS X上の64bitランタイムでは無視されます。
現在の開発ではゾーンを使用しないでください。

NSCreateZone
NSRecycleZone
NSSetZoneName
NSZoneCalloc
NSZoneFree
NSZoneFromPointer
NSZoneMalloc
NSZoneName
NSZoneRealloc
NSDefaultMallocZone



●関数

NSAssert

指定した条件が偽の場合にアサーションを生成します。

#define NSAssert(condition, desc)

パラメータ
condition
YESまたはNOで評価できる式を指定します。
desc
偽状態を説明するエラーメッセージを含むNSStringオブジェクトを指定します。
...
desc文字列に表示する引数を指定します。

解説
NSAssertマクロは条件を評価し、アサーションハンドラへのフロントエンドとして機能します。

各スレッドはNSAssertionHandlerクラスのオブジェクトである独自のアサーションハンドラを持っています。
呼び出された時、アサーションハンドラはメソッドやクラス名(または関数名)を含むエラーメッセージを出力します。
そしてNSInternalInconsistencyException例外を発生させます。
conditionの評価がNOの場合、マクロは現在のスレッドのアサーションハンドラ上にあるhandleFailureInMethod:object:file:lineNumber:description:を呼び出し、説明の文字列としてdescを渡します。

このマクロはObjective-Cメソッド内でのみ使用する必要があります。

アサーションは、プリプロセッサマクロNS_BLOCK_ASSERTIONSが定義されている場合は無効になります。

重要:このマクロのconditionパラメータ内で副作用を伴う関数を呼び出さないでください。
アサーションが無効の場合はconditionパラメータは評価されず、副作用を伴う関数を呼び出した場合、非デバッグ構成でプロジェクトをビルドした時にそれらの関数が呼び出されない可能性があります。

:デフォルトでは全てのリリース構成でアサーションが無効になっているわけではありません。

利用可能
iOS 2.0以降で利用可能

宣言
NSException.h


NSAssert1

指定した条件が偽の場合にアサーションを生成します。

#define NSAssert1(condition, desc, arg1)

パラメータ
condition
YESまたはNOで評価できる式を指定します。
desc
偽状態を説明するエラーメッセージを含むprintfスタイルの文字列を含むNSStringオブジェクトと、1つの引数のためのプレースホルダを指定します。
arg1
descの(プレースホルダの)場所に挿入する引数を指定します。

解説
NSAssert1マクロは条件を評価し、アサーションハンドラへのフロントエンドとして機能します。

各スレッドはNSAssertionHandlerクラスのオブジェクトである独自のアサーションハンドラを持っています。
呼び出された時、アサーションハンドラはメソッドやクラス名(または関数名)を含むエラーメッセージを出力します。
そしてNSInternalInconsistencyException例外を発生させます。
conditionの評価がNOの場合、マクロは現在のスレッドのアサーションハンドラ上にあるhandleFailureInMethod:object:file:lineNumber:description:を呼び出し、説明の文字列としてdescと、代入変数としてarg1を渡します。

このマクロはObjective-Cメソッド内でのみ使用する必要があります。

アサーションは、プリプロセッサマクロNS_BLOCK_ASSERTIONSが定義されている場合は無効になります。

重要:このマクロのconditionパラメータ内で副作用を伴う関数を呼び出さないでください。
アサーションが無効の場合はconditionパラメータは評価されず、副作用を伴う関数を呼び出した場合、非デバッグ構成でプロジェクトをビルドした時にそれらの関数が呼び出されない可能性があります。

:デフォルトでは全てのリリース構成でアサーションが無効になっているわけではありません。

利用可能
iOS 2.0以降で利用可能

宣言
NSException.h


NSClassFromString

名前のクラスを取得します。

Class NSClassFromString (
    NSString *aClassName
);

パラメータ
aClassName
クラスの名前を指定します。

戻り値
aClassNameで指定された名前のクラスオブジェクト、またはその名前のクラスが現在読み込まれていない場合はnilを返します。
aClassNameがnilの場合はnilを返します。

利用可能
iOS 2.0以降で利用可能

宣言
NSObjCRuntime.h


NSLocalizedString

文字列のローカライズバージョンを返します。

NSString *NSLocalizedString(NSString *key, NSString *comment)

戻り値
メインバンドル上でnilテーブルでlocalizedStringForKey:value:table:を呼び出した結果とnilテーブルです。

解説
\\Uxxxxを使用してkeyにUnicode文字列を指定することができます。
genstringsユーティリティの-uオプションを参照してください。
詳細についてはNSBundleを参照してください。

特別な考慮事項
Mac OS X v10.4以前では、genstringsユーティリティによって正確な構文解析を保証するために、keyパラメータにhigh-ASCII文字を含めることはできません。

利用可能
iOS 2.0以降で利用可能

宣言
NSBundle.h


NSLog

Apple System Log機能にエラーメッセージを記録します。

void NSLog (
    NSString *format,
     ...
);

解説
単純に可変個の引数を渡してNSLogvを呼び出しています。

利用可能
iOS 2.0以降で利用可能

宣言
NSObjCRuntime.h


NSSearchPathForDirectoriesInDomains

ディレクトリ検索パスのリストを生成します。

NSArray * NSSearchPathForDirectoriesInDomains (
    NSSearchPathDirectory directory,
    NSSearchPathDomainMask domainMask,
    BOOL expandTilde
);

解説
指定したドメイン内の指定したディレクトリのパス文字列のリストを生成します。
リストはディレクトリを検索した順序になります。
expandTildeがYESの場合、チルダはstringByExpandingTildeInPathで展開された表現になります。

戻り値がURLの場合は、推奨フォーマットであるNSFileManagerメソッドのURLsForDirectory:inDomains:URLForDirectory:inDomain:appropriateForURL:create:error:の使用を検討する必要があります。

ファイルシステムユーティリティの詳細については、『ファイルシステムプログラミングガイド』を参照してください。

:このメソッドで返されるディレクトリは存在しない場合があります。
このメソッドは単純に、要求されたディレクトリの適切な場所を提供します。
アプリケーションの必要とする形式に応じて、開発者が適切なディレクトリに整形しなければならない場合があります。

利用可能
iOS 2.0以降で利用可能

宣言
NSPathUtilities.h


NSStringFromClass

文字列としてクラス名を返します。

NSString * NSStringFromClass (
    Class aClass
);

パラメータ
aClass
クラスを指定します。

戻り値
aClassの名前を含む文字列です。
aClassがnilの場合はnilを返します。

利用可能
iOS 2.0以降で利用可能

宣言
NSObjCRuntime.h


NSTemporaryDirectory

現在のユーザ用の一時ディレクトリのパスを返します。

NSString * NSTemporaryDirectory (void);

戻り値
現在のユーザ用の一時ディレクトリのパスを含む文字列です。
現在利用できるディレクトリが存在しない場合はnilを返します。

解説
ファイルシステムユーティリティについての詳細は『Low-Level File Management Programming Topics』を参照してください。

一時ディレクトリは_CS_DARWIN_USER_TEMP_DIRフラグを渡したconfstr(3)によって決定されます。

消去ルールはそのディレクトリと同じです。

正確な一時ディレクトリを検索するための推奨される方法として、NSFileManagerのメソッドURLForDirectory:inDomain:appropriateForURL:create:error:を参照してください。 

利用可能
iOS 2.0以降で利用可能

宣言
NSPathUtilities.h



参考文献

Foundation Functions Reference






QuietControl 30 wireless headphones
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
04 | 2017/05 | 06
Sun Mon Tue Wed Thu Fri Sat
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

QuietControl 30 wireless headphones
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR