Ios-objective-c
iOS-Objective C
iOS開発で使用される言語は客観的Cです。 オブジェクト指向言語であるため、オブジェクト指向プログラミング言語のバックグラウンドを持っている人にとっては簡単です。
インターフェースと実装
Objective Cでは、クラスの宣言が行われるファイルは*インターフェースファイル*と呼ばれ、クラスが定義されるファイルは*実装ファイル*と呼ばれます。
シンプルなインターフェースファイル MyClass.h は次のようになります-
@interface MyClass:NSObject {
//class variable declared here
}
//class properties declared here
//class methods and instance methods declared here
@end
実装ファイル MyClass.m は次のようになります-
@implementation MyClass
//class methods defined here
@end
オブジェクト作成
オブジェクトの作成は次のように行われます-
MyClass *objectName = [[MyClass alloc]init] ;
方法
メソッドは次のようにObjective Cで宣言されています-
-(returnType)methodName:(typeName) variable1 :(typeName)variable2;
例を以下に示します。
-(void)calculateAreaForRectangleWithLength:(CGfloat)length
andBreadth:(CGfloat)breadth;
*andBreadth* 文字列が何のためにあるのか疑問に思うかもしれません。実際にはオプションの文字列であり、特に呼び出し時にメソッドを簡単に読んで理解するのに役立ちます。 同じクラスでこのメソッドを呼び出すには、次のステートメントを使用します-
[self calculateAreaForRectangleWithLength:30 andBreadth:20];
上記のように、andBreadthを使用すると、幅が20であることを理解できます。 Selfは、クラスメソッドであることを指定するために使用されます。
クラスメソッド
クラスのオブジェクトは、クラスのオブジェクトを作成せずに直接アクセスできます。 変数やオブジェクトは関連付けられていません。 例を以下に示します。
+(void)simpleClassMethod;
次のようにクラス名を使用してアクセスできます(クラス名をMyClassと仮定しましょう)-
[MyClass simpleClassMethod];
インスタンスメソッド
インスタンスメソッドは、クラスのオブジェクトを作成した後にのみアクセスできます。 インスタンス変数にメモリが割り当てられます。 インスタンスメソッドの例を以下に示します。
-(void)simpleInstanceMethod;
次のようにクラスのオブジェクトを作成した後にアクセスできます-
MyClass *objectName = [[MyClass alloc]init] ;
[objectName simpleInstanceMethod];
Objective Cの重要なデータ型
Sr.No. | Data Type |
---|---|
1 |
NSString 文字列を表すために使用されます。 |
2 |
CGfloat 浮動小数点値を表すために使用されます(通常のフロートも使用できますが、CGfloatを使用することをお勧めします)。 |
3 |
NSInteger 整数を表すために使用されます。 |
4 |
BOOL ブール値を表すために使用されます(YESまたはNOはBOOLタイプが許可されます)。 |
ログを印刷する
NSLog-ステートメントの印刷に使用されます。 これは、それぞれリリースモードとデバッグモードでデバイスログとデバッグコンソールに出力されます。 例えば、
NSlog(@"");
制御構造
制御構造のほとんどは、inステートメントのようないくつかの追加を除いて、CおよびC ++と同じです。
プロパティ
外部クラスがクラスにアクセスするには、変数プロパティが使用されます。 例えば、
@property(nonatomic , strong) NSString *myString;
プロパティへのアクセス
ドット演算子を使用して、プロパティにアクセスできます。 上記のプロパティにアクセスするには、次のことを行います。
self.myString = @"Test";
また、次のようにsetメソッドを使用することができます-
[self setMyString:@"Test"];
カテゴリー
カテゴリは、既存のクラスにメソッドを追加するために使用されます。 この方法により、実際のクラスが定義されている実装ファイルすら持たないクラスにメソッドを追加できます。 私たちのクラスのサンプルカテゴリは次のとおりです-
@interface MyClass(customAdditions)
- (void)sampleCategoryMethod;
@end
@implementation MyClass(categoryAdditions)
-(void)sampleCategoryMethod {
NSLog(@"Just a test category");
}
配列
NSMutableArrayとNSArrayは、目的Cで使用される配列クラスです。 名前が示すように、前者は変更可能で、後者は不変です。 例を以下に示します。
NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];
[anArray addObject:@"firstobject"];
NSArray *aImmutableArray = [[NSArray alloc]
initWithObjects:@"firstObject",nil];
辞書
NSMutableDictionaryとNSDictionaryは、目的Cで使用される辞書クラスです。 名前が示すように、前者は変更可能で、後者は不変です。 例を以下に示します。
NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init];
[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];
NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:
@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];