macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

-localizedNameOfStringEncoding:

INDEX>Foundation>NSString>

現在の言語のエンコーディングの名前を返す
+(NSString *)localizedNameOfStringEncoding:(NSStringEncoding)encoding

解説

現在の言語のエンコーディングの名前を返します

返り値

( NSString * )

エンコーディングの名前

引数

( NSStringEncoding )encoding

エンコーディング

クラス

NSString

使用可能

10.0

参照

例文

[NSString localizedNameOfStringEncoding:documentEncoding]
//
NSString *str1 = [NSString stringWithString:@"12345"];
[info setStringValue:[NSString localizedNameOfStringEncoding:[NSString availableStringEncodings]]];

AVFoundationフレームワーク

フレームワークの説明

iPhoneでのサウンドの再生、録音のフレームワークです。

お菓子駄菓子15点詰合せセット

お菓子駄菓子15点詰合せセット


AVAudioPlayer.h
AVAudioRecorder.h
AVAudioSession.h
AVAudioSettings.h
AVFoundation.h

Class References


+ (id)sharedInstance;

@property(assign) id delegate;

- (BOOL)setActive:(BOOL)beActive error:(NSError**)outError;

- (BOOL)setCategory:(NSString*)theCategory error:(NSError**)outError;
- (BOOL)setPreferredHardwareSampleRate:(double)sampleRate error:(NSError**)outError;
- (BOOL)setPreferredIOBufferDuration:(NSTimeInterval)duration error:(NSError**)outError;

@property(readonly) NSString* category;
@property(readonly) double preferredHardwareSampleRate;
@property(readonly) NSTimeInterval preferredIOBufferDuration;

@property(readonly) BOOL inputIsAvailable;
@property(readonly) double currentHardwareSampleRate;
@property(readonly) NSInteger currentHardwareInputNumberOfChannels;
@property(readonly) NSInteger currentHardwareOutputNumberOfChannels;

@end

Protocol References

- (void)beginInterruption;
- (void)endInterruption;

- (void)categoryChanged:(NSString*)category;

- (void)inputIsAvailableChanged:(BOOL)isInputAvailable;

- (void)currentHardwareSampleRateChanged:(double)sampleRate;
- (void)currentHardwareInputNumberOfChannelsChanged:(NSInteger)numberOfChannels;
- (void)currentHardwareOutputNumberOfChannelsChanged:(NSInteger)numberOfChannels;

- (id)initWithURL:(NSURL *)url settings:(NSDictionary *)settings error:(NSError **)outError;


- (BOOL)prepareToRecord;
 録音の準備を行う。
- (BOOL)record;
 録音を行う
- (BOOL)recordForDuration: (NSTimeInterval) duration;
 遅延録音する

  • (void)pause;

 ポーズする
- (void)stop;
 録音を停止する

- (BOOL)deleteRecording;

@property(readonly, getter=isRecording) BOOL recording;

@property(readonly) NSURL *url;

@property(readonly) NSDictionary *settings;

@property(assign) id delegate;


@property(readonly) NSTimeInterval currentTime;


@property(getter=isMeteringEnabled) BOOL meteringEnabled;

- (void)updateMeters;

- (float)peakPowerForChannel:(NSUInteger)channelNumber;
- (float)averagePowerForChannel:(NSUInteger)channelNumber;


- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag;


- (void)audioRecorderEncodeErrorDidOccur:(AVAudioRecorder *)recorder error:(NSError *)error;


- (void)audioRecorderBeginInterruption:(AVAudioRecorder *)recorder;


- (void)audioRecorderEndInterruption:(AVAudioRecorder *)recorder;

- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;
- (id)initWithData:(NSData *)data error:(NSError **)outError;


- (BOOL)prepareToPlay;
 再生の準備を行う
- (BOOL)play;
 再生を行う
- (void)pause;
 ポーズする(バッファはクリアしない)
- (void)stop;
 再生をストップする(バッファをクリアする)


@property(readonly, getter=isPlaying) BOOL playing;

@property(readonly) NSUInteger numberOfChannels;
@property(readonly) NSTimeInterval duration;

@property(assign) id delegate;


@property(readonly) NSURL *url;
@property(readonly) NSData *data;

@property float volume;

@property NSTimeInterval currentTime;

@property NSInteger numberOfLoops;



@property(getter=isMeteringEnabled) BOOL meteringEnabled;

- (void)updateMeters;

- (float)peakPowerForChannel:(NSUInteger)channelNumber;
- (float)averagePowerForChannel:(NSUInteger)channelNumber;


- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;
 再生が完了したことを通知
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;
 エラーが発生したことを通知

iPhoneのみ
- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player;
 サウンド再生の中断通知
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player;
 サウンド再生の再開通知




makeKeyWindow

INDEX>AppKit> NSWindow

キーウインドウにします

Objective-C

- (void)makeKeyWindow

Swift

func makeKeyWindow()

解説

キーウインドウにします。

返り値

なし

引数

なし

フレームワーク

ApplicationKit

クラス

NSWindow

使用可能

10.0

参照

- makeMainWindow
- becomeKeyWindow
- isKeyWindow

更新時のバージョン

OS X 10.10

関連記事(外部サイト)

例文

#import "Controller.h"

@implementation Controller

- (IBAction)pushButton:(id)sender
{
[myWindow makeKeyWindow];
}
@end


Swift

    //NSWindow canBecomeKeyWindow
    //NSWindow makeKeyWindow
    func buttonAction079(sender: AnyObject){
        var aWindow : NSWindow = (sender as NSButton).window!
        if (aWindow.canBecomeKeyWindow){
            NSLog("YES")
            aWindow.makeKeyWindow()
        }else{
            NSLog("NO")
        }
    }
    @IBAction func function079(sender: AnyObject) {
        var theWindow : NSWindow = NSWindow(contentRect: NSMakeRect(0.0, 0.0, 300, 200), styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask, backing: .Buffered, defer: false)
        windowArray.addObject(theWindow) //ウインドウを保持するための配列に追加。アプリ終了時に配列は破棄
        
        
        theWindow.center()//ウインドウをスクリーンの中心に
        theWindow.title = "ウインドウタイトル"//タイトル設定
        theWindow.orderFront(self)//前面に
        theWindow.makeKeyAndOrderFront(self)//表示
        
        
        //ボタンを作成
        var theButton : NSButton = NSButton(frame: NSMakeRect(100.0, 2.0, 100.0, 30.0))
        theButton.title = "Action"
        theButton.bezelStyle = NSBezelStyle.RoundedBezelStyle
        theButton.action = Selector("buttonAction079:")
        theButton.target = self
        theWindow.contentView.addSubview(theButton)
        
        var textField1 : NSTextField = NSTextField(frame: NSMakeRect(100.0, 100.0, 100.0, 30.0))
        theWindow.contentView.addSubview(textField1)

    }

makeFirstResponder:

ファーストレスポンダを指定します
-(BOOL)makeFirstResponder:(NSResponder *)aResponder:

電子光触媒蚊取り機『ブラックホール』

電子光触媒蚊取り機『ブラックホール』

解説

ファーストレスポンダを指定します。
もし、aResponderがすでにファーストレスポンダでなければ、このメソッドはresignFirstResponderメッセージを送る。
そのオブジェクトがやめるのを断ればファーストレスポンダとして残り、このメソッドはすぐにNOを返す
YESを返すならaResponderにbecomeFirstResponder メッセージを送ります。
aResponderはファーストレスポンダ状態になる事ができたならメソッドはYESを返します。
断わるならメソッドはNOを返し、そしてNSWindowはファーストレスポンダになります。
もしaResponderがnilを返せば、このメソッドは現在のファーストレスポンダにresignFirstResponderメッセージを送ります。
もし現在のファーストレスポンダがやめるのを断ればファーストレスポンダとして残り、このメソッドはすぐにNOを返します。
もし現在のファーストレスポンダがresignFirstResponderでYESを返すならレシーバは自身をファーストレスポンダにするそしてメソッドはYESを返します。
アプリケーションキットはマウスダウンイベントの中でファーストレスポンダを変えるためにこのメソッドを使います、 あなたはできるあなたのプログラムのなかでファーストレスポンダを変更する為に使う事が出来ます。
aResponderはレシーバーのビュー階層のNSViewです。
もしこのメソッドが明示的に呼ばれたならば、aResponderに最初にacceptsFirstResponder が送られます。そしてacceptsFirstResponderがNOをかえしたならばmakeFirstResponder:は呼ばれません。
ウインドウをスクリーンに最初に表示して、ファーストレスポンダをセットする為にsetInitialFirstResponder: を使います。

返り値

( BOOL )

成功YES/NO

引数

( NSResponder * )aResponder

レスポンダ

フレームワーク

ApplicationKit

クラス

NSWindow

Instance Methods

使用可能

10.0

参照

- becomeFirstResponder (NSResponder)
- resignFirstResponder (NSResponder)

例文

[[scrollView window] makeFirstResponder:[self firstTextView]];

-setAutoresizingMask:

INDEX>AppKit>NSView

ビューがリサイズする方法をセットします
-(void)setAutoresizingMask:(unsigned int)mask:

解説

ビューがリサイズする方法をセットします。
【mask】
● NSViewNotSizable サイズ変更不可。
● NSViewMinXMargin レシーバーとそのsuperviewとの間に左のマージンは、可変。
● NSViewWidthSizable レシーバーの幅は、可変。
● NSViewMaxXMargin レシーバーとそのsuperviewとの間に右側マージンは、可変。
● NSViewMinYMargin レシーバーとそのsuperviewとの間に底マージンは、可変。
● NSViewHeightSizable レシーバーの高さは、可変。
● NSViewMaxYMargin レシーバーとそのsuperviewとの間に上マージンは、可変。

返り値

( void )

なし

引数

( unsigned int )mask

リサイズする方法 下記参照

フレームワーク

ApplicationKit

クラス

NSView

Instance Methods

使用可能

10.0

参照

- autoresizingMask
- resizeSubviewsWithOldSize:
- setAutoresizesSubviews:

例文

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
    [scrollview setAutoresizingMask:NSViewNotSizable];//サイズ変更できない
    [scrollview setAutoresizingMask:NSViewMinXMargin];//左のマージン変わる
    [scrollview setAutoresizingMask:NSViewWidthSizable];//幅変わる
    [scrollview setAutoresizingMask:NSViewMaxXMargin];//右のマージン変わる
    [scrollview setAutoresizingMask:NSViewMinYMargin];//下のマージン変わる
    [scrollview setAutoresizingMask:NSViewMaxYMargin];//上のマージン変わる
    [scrollview setAutoresizingMask:NSViewHeightSizable];//幅変わる
    [scrollview setAutoresizingMask:(NSViewMinYMargin | NSViewMaxYMargin)];//上と下のマージン変わる

}

@end

NSObjectプロトコル

INDEX>Foundation>

apple(mac)
apple(iOS)

APPLE MacBook Pro 13.3/2.5GHz Core i5/4GB/500GB/8xSuperDrive DL MD101J/A

APPLE MacBook Pro 13.3/2.5GHz Core i5/4GB/500GB/8xSuperDrive DL MD101J/A

準拠 NSObject
フレームワーク /System/Library/Frameworks/Foundation.framework
使用可能 OS X 10.0以降
  iOS 2.0以降
定義 NSObject.h

概要

参照

タスク

Identifying Classes

– class required method
– superclass required method

Identifying and Comparing Objects

– isEqual: required method
– hash required method
– self required method

Testing Object Inheritance, Behavior, and Conformance

– isKindOfClass: required method
– isMemberOfClass: required method
– respondsToSelector: required method
– conformsToProtocol: required method

Describing Objects

– description required method
– debugDescription

Sending Messages

– performSelector: required method
– performSelector:withObject: required method
– performSelector:withObject:withObject: required method

Identifying Proxies

– isProxy required method

Obsolete Methods

– retain required method
– release required method
– autorelease required method
– retainCount required method
– zone required method

NSProcessInfoクラス

INDEX>Foundation>

apple(OS X)
apple(iOS)

解説

プロセス情報

アレルシャット 花粉イオンでブロック 160回分

アレルシャット 花粉イオンでブロック 160回分

継承 NSObject
準拠 NSObject (NSObject)
フレームワーク /System/Library/Frameworks/Foundation.framework
使用可能 OS X 10.0以降
iOS 2.0以降
定義 NSProcessInfo.h

概要

アプリケーションの情報を取得することができます。各プロセスはプロセス情報エージェントと呼ばれる、一つのオブジェクトを持っています。そのエージェントにメッセージを送信することで各種のプロセス情報を得ることができます。

プロセス情報エージェントを得る

プロセス情報オブジェクトを得るには(+ processInfoメソッドを使用します。

プロセス情報にアクセス

プロセス名を得るには(– processNameメソッドを使用します。
プロセスのコマンドライン引数を得るには(– argumentsメソッドを使用します。
プロセスの環境変数を得るには(– environmentメソッドを使用します。
プロセスのプロセスIDを得るには(– processIdentifierメソッドを使用します。
プロセスのグローバルIDを得るには(– globallyUniqueStringメソッドを使用します。
プロセス名を変更できるメソッド– setProcessName)がありますがユーザーデフォルトなどで問題を起こす可能性があるので注意が必要です。

ホストの情報を得る

ホスト名を得るには(– hostNameメソッドを使用します。OSを得るには(– operatingSystemメソッドを使用し、OS名を文字列で得るには(– operatingSystemNameメソッドを使用します。
ホスト名は satochan11.local のような文字列、iOSではOSはNSMACHOperatingSystemと返されます。
OSのバージョン番号を文字列で得るには(– operatingSystemVersionStringメソッドを使用します。

コンピューターの情報を得る

物理メモリ量を得るには(– physicalMemoryメソッドを使用します。手元のiPhone4では約504MB、iPad (3rd)では987MBと返ってきました。
プロセッサ数を得るには(– processorCountメソッドを使用します。iPhone4では1、iPad(3rd)では2と返ってきました。シミュレータでは…4と返ってきますね。
稼働中のプロセッサ数を得るには(– activeProcessorCountメソッドを使用します。システムの稼働時間を得るには(– systemUptimeメソッドを使用します。

いろいろ情報を取得する

#pragma mark processName
-(void)method001
{
    NSProcessInfo *pInfo = [NSProcessInfo processInfo];
    NSString *processName = [pInfo processName];

    NSLog(@"%s %@",__FUNCTION__,processName);
    
    NSLog(@"%s %@",__FUNCTION__,[pInfo arguments]);
    
    NSLog(@"%s %@",__FUNCTION__,[pInfo environment]);
    
    NSLog(@"%s %d",__FUNCTION__,[pInfo processIdentifier]);
    
    NSLog(@"%s %@",__FUNCTION__,[pInfo globallyUniqueString]);
    
    [pInfo setProcessName:@"newName"];
    NSLog(@"%s %@",__FUNCTION__,[pInfo processName]);
    
    NSLog(@"%s %@",__FUNCTION__,[pInfo hostName]);
    
    NSLog(@"%s %u",__FUNCTION__,[pInfo operatingSystem]);
    
    NSLog(@"%s %@",__FUNCTION__,[pInfo operatingSystemName]);
    
    NSLog(@"%s %@",__FUNCTION__,[pInfo operatingSystemVersionString]);
    
    NSLog(@"%s %llu",__FUNCTION__,([pInfo physicalMemory]/1024/1024));

    NSLog(@"%s %u",__FUNCTION__,[pInfo processorCount]);

    NSLog(@"%s %u",__FUNCTION__,[pInfo activeProcessorCount]);

    NSLog(@"%s %f",__FUNCTION__,[pInfo systemUptime]);
}

適合するプロトコル