質問編集履歴

1

質問の内容を変更しました。インスタンスではなくインスタンスの中のプロパティのインスタンスでした。

2016/02/18 07:36

投稿

usugita_san
usugita_san

スコア226

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  HogeClassという独自クラスを作り、NSMutableArrayに格納しようとしました。
2
2
 
3
- しかし途中でHogeClassのインスタンスが消えてしまうというものです。
3
+ しかし途中で自作のクラス(HogeClass、プロパティが消えてしまうというものです。(インスタンスと書きましたが、プロパティでした。大変失礼しました)
4
4
 
5
5
 
6
6
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  }
28
28
 
29
- //ここでは、resultに格納したはずのhogeClassが消えており、ウォッチウィンドウでも確認できません。
29
+ //ここでは、resultに格納したはずのhogeClassのnsArrayPropertyプロパティnillになっており、ウォッチウィンドウでも確認できません。
30
30
 
31
31
 
32
32
 
@@ -40,7 +40,27 @@
40
40
 
41
41
 
42
42
 
43
+ HogeClassクラスはプロパティを持っています。このプロパティが消えてしまうのです。
44
+
45
+ ヘッダのプロパティ宣言は以下のようなものです。
46
+
47
+ ```ObjectiveC
48
+
49
+ @interface HogeClass: NSObject
50
+
51
+ @property (nonatomic,weak) NSString *strProperty;
52
+
53
+ @property (nonatomic,weak) NSArray *nsArrayProperty;
54
+
55
+ @end
56
+
57
+ ```
58
+
59
+
60
+
61
+ このうち、strPropertyは、return resultの時点で残っていたのですが、nsArrayPropertyはnilになってしまうのです。
62
+
43
- このように配列に格納たい場合ように宣言するのが正しいんしょうか?ブロック外で宣言すれば解決んでしょうか?しかしそれだと、ルプの最初にインタンス変数をクリアする処理を書かないといけない気が綺麗になせん
63
+ 個人的な予想とてはresultにHogeClass参照を持っているので、HogeClass内nsArrayPropertyの参照も消えい(リリースされない考えてた。しかしなぜかnsArrayPropertyはnillになってい
44
64
 
45
65
 
46
66