質問編集履歴

3

追記

2016/11/02 16:49

投稿

pikumin999
pikumin999

スコア8

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,106 @@
7
7
  ###該当のソースコード
8
8
 
9
9
  ```Swift
10
+
11
+
12
+
13
+ - ViewController
14
+
15
+
16
+
17
+ func imageDonwlooad() {
18
+
19
+ dispatchGroup.enter()
20
+
21
+
22
+
23
+ dispatchQueue.async(group: dispatchGroup, execute: { [weak self] () -> () in
24
+
25
+ connection.imageConnection(
26
+
27
+ completion: { [weak self] (err: Error?) in
28
+
29
+ dispatchGroup.leave()
30
+
31
+ }
32
+
33
+ )
34
+
35
+ })
36
+
37
+ }
38
+
39
+
40
+
41
+
42
+
43
+ - URLSessionClass
44
+
45
+
46
+
47
+ func connection(requestUrl: String, completion:@escaping (ConnectionStatus, Error?, Data?) -> ()) {
48
+
49
+
50
+
51
+ let config: URLSessionConfiguration = .default
52
+
53
+ let session: URLSession = URLSession(configuration: config)
54
+
55
+
56
+
57
+ let request: URLRequest = URLRequest(url: URL(string: requestUrl)!, cachePolicy: URLRequest.CachePolicy.useProtocolCachePolicy, timeoutInterval: 10)
58
+
59
+
60
+
61
+ let task: URLSessionDataTask = session.dataTask(
62
+
63
+ with: request) { (data: Data?, res: URLResponse?, err: Error?) in
64
+
65
+
66
+
67
+ if let resultError = err {
68
+
69
+ session.invalidateAndCancel()
70
+
71
+
72
+
73
+ completion(.failure, resultError, nil)
74
+
75
+ }
76
+
77
+ else {
78
+
79
+
80
+
81
+ session.invalidateAndCancel()
82
+
83
+
84
+
85
+ if let resultData = data {
86
+
87
+ completion(.success, nil, resultData)
88
+
89
+ }
90
+
91
+ else {
92
+
93
+ completion(.failure, error, nil)
94
+
95
+ }
96
+
97
+ }
98
+
99
+ }
100
+
101
+ task.resume()
102
+
103
+ }
104
+
105
+
106
+
107
+
108
+
109
+ - RealmRegistClass
10
110
 
11
111
 
12
112
 

2

タグ追加

2016/11/02 16:49

投稿

pikumin999
pikumin999

スコア8

test CHANGED
File without changes
test CHANGED
File without changes

1

追記

2016/11/01 14:21

投稿

pikumin999
pikumin999

スコア8

test CHANGED
@@ -1 +1 @@
1
- RealmSwiftのData登録時のメモリリークについて
1
+ RealmSwiftで複数のData型(NSData)を書き込みする際のメモリリーク
test CHANGED
@@ -1,11 +1,69 @@
1
+ ###前提・実現したいこと
2
+
1
- ###RealmSwiftでData登録時メモリリークにつ
3
+ 現在、Swift3Realmに複数の画像データを登録する処理を行っているのですが、Realmへの書き込みメモリリークが起きてしまます。
2
4
 
3
5
 
4
6
 
5
- 現在、Swift3でRealmに複数画像デタを登録する処理を行っているのですが、メモリリクが起きてしまいます。
7
+ ###該当スコ
6
8
 
7
- とりあえずの対処として、トランザクションを分けるなどを処理は行っており、アプリが落ちはしないのですが、Instrumentで計測した場合10回中5回ほどメモリリークが起きています。
9
+ ```Swift
8
10
 
9
- 何か他に対処方法があればご教授いただきたいです。
10
11
 
12
+
13
+ func registImgData(objects: [Object]) throws {
14
+
15
+
16
+
17
+ // Realmを取得
18
+
19
+ let realm: Realm = try Realm()
20
+
21
+
22
+
23
+ // オブジェクトをRealmに追加する
24
+
25
+ for object in objects {
26
+
27
+ try realm.write {
28
+
29
+ realm.add(object)
30
+
31
+ }
32
+
33
+ }
34
+
35
+ }
36
+
37
+
38
+
39
+ // 下記の追加方法も試してみました
40
+
41
+ // try realm.write {
42
+
43
+ // realm.add(objects)
44
+
11
- よろしくお願い致します。
45
+ // }
46
+
47
+ }
48
+
49
+ ```
50
+
51
+
52
+
53
+ ###試したこと
54
+
55
+ 画像データをダウンロードしない場合で試したところ、メモリリークは出なかったです。
56
+
57
+ また、容量が軽い画像データでもメモリリークは出ないです。
58
+
59
+
60
+
61
+ アプリ自体はクラッシュはしないのですが、Instrumentで計測した結果、シュミレーターで10回中5回ほどメモリリークが起きています。
62
+
63
+ 何か対処方法があればご教授いただきたいです。
64
+
65
+
66
+
67
+ ###補足情報(言語/FW/ツール等のバージョンなど)
68
+
69
+ Xcode8 Swift3 RealmSwift2.0.2