LoginSignup
95
88

More than 5 years have passed since last update.

Android開発者がiOS開発を始めるときに便利かもなAPI対応表

Posted at

Android開発者がiOS開発を始める時にあると便利かもしれないAPI対応表。
もちろん完全に一致はしないです。似たような役割ということで...
本当に初めての人向けです。逆方向(iOSからAndroid)でもある程度いけると思います。

言語の基本

内容(Java用語) Java ObjC
32bit整数 int int(long), int32_t
64bit整数 long long long, int64_t
真偽値 boolean, true/false BOOL YES/NO
自分自身 this self
空ポインタ null nil
文字列 "Hello" @"Hello" (※1)
---------- ----------- ------------
メソッド宣言 bool funcName(int value) - (BOOL) funcName:(int)value
staticメソッド static int staticFunc(String value) + (int) staticFunc:(NSString *)value
メソッド呼び出し object.fuction(parameter) [object function:parameter]
クラス宣言 class MyClass {} @interface MyClass
クラス実装 (宣言と同じ) @implementation MyClass
インターフェイス宣言 interface MyInterface @protocol MyInterface
インターフェイス実装 class MyClass implements MyInterface @interface MyClass<MyInterface>
引数にインターフェイス void func(MyInterface obj) - (void) func:(id<MyInterface>)obj
---------- ----------- ------------
foreach for (Object o : array) for (id object in array)
ログ出力 System.out.println("DEBUG:" + string) NSLog(@"DEBUG:%@", string) (※2)

※1: ""はchar[]、@""はNSString*。ほとんどの場合後者を使う
※2: %@はNSString*, %sがchar*、%dがint、%qiがlong long

よく使うクラス

内容(Java用語) Java ObjC
文字列 String NSString
可変文字列 StringBuilder NSMutableString
文字列連結 str1 + str2 [NSString stringWithFormat:@"%@%@", str1, str2]
リスト(配列) ArrayList NSArray(不変), NSMutableArray(可変)
要素追加 list.add(obj) [array addObject:obj]
要素取得 list.get(index) [array objectAtIndex:index] (※1)
要素数 list.size(), array.length [array count]
マップ Map NSDictionary, NSMutableDictionary
要素追加 map.put(key, value) [dict setObject:value forKey:key] (※2)
要素取得 map.get(key) [dict objectForKey:key] (※3)

※1 array[index] でもアクセス可能
※2 keyとvalueの順番が逆なので要注意。dict[key]=valueで設定可能
※3 dict[key]で取得も可能。

View関係

Android iOS
Activity(Fragment) UIViewController
View UIView
View.OnClickListener 該当なし。view addTarget: action: forControlEvents が同等の役割
ImageView UIImageVIew
TextView UILabel
Button UIButton
EditText UITextField, UITextBox
Bitmap(Drawableに近い役割でもある) UIImage
ListView UITableView
Adapter UITableViewDataSource
AdapterView.OnXXXClickListener UITableViewDelegate

その他

一般にゲッタメソッドにはgetを付けません
obj.getValue() が、 [obj value] になります。
もっともプロパティ宣言されていることがおおく、 obj.value でいけることも。

ジェネリクスの概念はないです
ガマンしましょう...いい方法をご存じの方は教えてください...
NSArray<NSString>とかすごいやりたいのですが..

ObjCでprivateなプロパティ、メソッドを宣言する方法
.mファイルに

MyClass.m
@interface MyClass()
@property (nonatomic) NSString *privateStringVar;
- (void) privateMethod;
@end

@implementation MyClass 
///
@end

とかく。

定数の宣言方法
3種類紹介します。他にもいろいろあると思います。
(1)#define。同一のものが宣言されてたら上書きされてしまうため非推奨。でも楽なので自分は小規模実験アプリではやってます。

Const.h
#define MY_VALUE @"value"  

(2)privateな定数なら.mにstatic const。よくkを先頭につける

Const.m
static NSString *const kMyValue= @"COSNT";

(3)グローバルな定数ならextern const。他とかぶるとビルドエラー。かぶらないようクラス名を先頭に。

//MyClass.h
extern const NSString *MyClassValue;

//MyClass.m
const NSString *MyClassValue = @"Value";
95
88
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
95
88