これはおそらく完全な初心者の質問ですが、私はこれを自分で理解することはできないようです。こことグーグルで検索しましたが、運がありませんでした。
たとえば、「logme」などの名前のクラスがあります。.hファイルにfloat*floatersを実装し、プロパティを作成して.mファイルに合成します。.mファイルmethod1とmethod2内の2つのメソッド。ビューコントローラからmethod1を実行すると、フローター変数がいくつかの値を持つ配列になります。私はそれらをNSLogして、それらがそうであるかどうかを確認します。その後、同じ配列のみをNSLogするmethod2を実行しますが、配列の値は完全に異なります。
logme.h
@interface Logme : NSObject {
float *floaters;
}
-(void)method1;
-(void)method2;
logme.m
@implementation Logme
-(void)method1 {
floaters = (float[8]) {
1.0f, 2.0f,
3.0f, 4.0f,
6.0f, 5.0f,
7.0f, 8.0f,
};
for (int i = 0; i < 8; i++) {
NSLog(@"%f", floaters[i]);
}
}
-(void)method2 {
for (int i = 0; i < 8; i++) {
NSLog(@"%f", floaters[i]);
}
}
@end
viewcontrollerからメソッドを呼び出す:
logme = [Logme alloc];
[logme method1];
[logme method2];
結果:
NSLog from method1:
1.000000
2.000000
3.000000
4.000000
6.000000
5.000000
7.000000
8.000000
NSLog from method2:
0.000000
-1.998885
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
- ごめんなさい。私はこの4つのスペースシステムと戦っていました。.mファイルコードを追加することはできません。ついにここに入れました:)