質問編集履歴

6

a

2020/09/09 09:42

投稿

kazuki_user
kazuki_user

スコア147

test CHANGED
File without changes
test CHANGED
@@ -25,6 +25,10 @@
25
25
 
26
26
 
27
27
  上記メッセージが出たのですが、**`RepositoryApi`のどこが不適切なのでしょうか?**
28
+
29
+ `self`を消すとエラーになるのですが..
30
+
31
+
28
32
 
29
33
  以下にコードを記載します。
30
34
 

5

2020/09/09 09:42

投稿

kazuki_user
kazuki_user

スコア147

test CHANGED
@@ -1 +1 @@
1
- EXC_BAD_ACCESSが出る。【
1
+ Exception BreakPointでエラーを特定したが、不適切な箇所が分からない【EXC_BAD_ACCESS】
test CHANGED
@@ -1,4 +1,4 @@
1
- ## タイトル
1
+ ## Exception BreakPointでエラーを特定したが、不適切な箇所が分からない
2
2
 
3
3
 
4
4
 

4

a

2020/09/09 09:41

投稿

kazuki_user
kazuki_user

スコア147

test CHANGED
@@ -1 +1 @@
1
- EXC_BAD_ACCESSが出る。【Add Exception BreakPointが無い..
1
+ EXC_BAD_ACCESSが出る。【】
test CHANGED
@@ -10,23 +10,23 @@
10
10
 
11
11
 
12
12
 
13
- [**Xcodeでデバッグ実行中にクラッシュした時に捗るブレークポイント設定**](https://qiita.com/mono0926/items/bf70c7ef15db046ee163)を参考に
13
+ [**こちら**](https://www.hfoasi8fje3.work/entry/2018/08/22/004804)を参考に
14
14
 
15
- **Add Exception BreakPoint**てみたのですがそれもありません。
15
+ `Exception BreakPoint`利用し、
16
16
 
17
17
 
18
18
 
19
- 自分のXcode↓
19
+ ```
20
20
 
21
- ![イメージ説明](39dd5dee9e079bdccbe17a5e9f5bd9a7.png)
21
+ self CodeCheck_Test_Yumemi.RepositoryApi 0x00007fd96f0220e0
22
+
23
+ ```
22
24
 
23
25
 
24
26
 
25
- 無い
27
+ 上記メッセージが出たのですが、**`RepositoryApi`のどこが不適切なのでしょうか?**
26
28
 
27
-
28
-
29
- ![![イメジ説明](8beb948fecd4744adbc9ee2dab561e2c.png)](b030681d475777c429d62b1c91b80aa3.png)
29
+ 以下にコドを記載します。
30
30
 
31
31
 
32
32
 
@@ -34,163 +34,69 @@
34
34
 
35
35
 
36
36
 
37
- ```SearchRootVC
37
+ ```RepositoryApi
38
38
 
39
39
  import UIKit
40
40
 
41
41
 
42
42
 
43
- class SearchRootVC: UITableViewController, UISearchBarDelegate {
43
+ class RepositoryApi: SearchRootVC {
44
44
 
45
-
46
45
 
47
- @IBOutlet weak var searchBar: UISearchBar!
48
46
 
49
-
47
+ func getRandomRepoUrlSession() {
50
48
 
51
- var word: String!
52
49
 
53
- var url: String!
54
50
 
55
- var RepoToPass: Int!
51
+ let word = searchBar.text!
56
52
 
57
-
53
+ var url: String!
58
54
 
59
- var task: URLSessionTask?
60
55
 
61
- var repo: [[String: Any]]=[]
62
56
 
63
-
57
+ if word.count > 0 {
64
58
 
65
- override func viewDidLoad() {
59
+ url = URL_BASE + "(word)"
66
60
 
67
- super.viewDidLoad()
61
+ let task = URLSession.shared.dataTask(with: URL(string: url)!) { (data, res, err) in
68
62
 
69
-
70
63
 
71
- repositoryApi.getRandomRepoUrlSession()
72
64
 
73
-
65
+ guard err == nil else {
74
66
 
75
- // UISearchBardelegateプロパティに、self(=SearchRootVC)を代入。
67
+ debugPrint(err.debugDescription)
76
68
 
77
- searchBar.delegate = self
69
+ return
78
70
 
79
- self.tableView.register(RepositoryCell.self, forCellReuseIdentifier: Identifiers.RepositoryCell)
71
+ }
80
72
 
81
- }
82
73
 
83
-
84
74
 
85
- // 以下3つ、元から用意されているsearchBar関数名なので、変更NG。
75
+ if let obj = try! JSONSerialization.jsonObject(with: data!) as? [String: Any] {
86
76
 
87
- func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
77
+ if let items = obj["items"] as? [[String: Any]] {
88
78
 
89
- searchBar.text = ""
79
+ self.repo = items
90
80
 
91
- return true
81
+ DispatchQueue.main.async {
92
82
 
93
- }
83
+ self.tableView.reloadData()
94
84
 
95
-
85
+ }
96
86
 
97
- func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
87
+ }
98
88
 
99
- task?.cancel()
100
-
101
- }
89
+ }
102
-
103
-
104
-
105
- func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
106
-
107
- // getRandomRepoUrlSession()を実行する処理をかきたい。
108
-
109
- }
110
-
111
-
112
-
113
-
114
-
115
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
116
-
117
- if segue.identifier == Segues.ToProfileDetail {
118
-
119
- if let detailVC = segue.destination as? ProfileDetailVC {
120
-
121
- detailVC.selectedUser = self
122
90
 
123
91
  }
124
92
 
93
+ // これ呼ばなきゃリストが更新されません
94
+
95
+ task.resume()
96
+
125
97
  }
126
98
 
127
- }
128
99
 
129
- }
130
-
131
-
132
-
133
- // extension
134
-
135
-
136
-
137
- // UITableViewDelegate や UITableViewDataSource への適合は不要。
138
-
139
- // 必要なプロトコルは、UITableViewController にて既に採用されているため。
140
-
141
-
142
-
143
- extension SearchRootVC {
144
-
145
-
146
-
147
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
148
-
149
- return repo.count
150
-
151
- }
152
-
153
-
154
-
155
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
156
-
157
-
158
-
159
- // dequeueReusableCellで、セルを再利用。
160
-
161
- // nilを返さない為、オプショナルバインディングは不要。
162
-
163
-
164
-
165
- let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: Identifiers.RepositoryCell, for: indexPath) as! RepositoryCell
166
-
167
- let rp = repo[indexPath.row]
168
-
169
- // Any から Stringへ、より具体的な型にダウンキャスト。
170
-
171
- // ダウンキャストに失敗し、nilとなると「""」。
172
-
173
- // ??は、Nil結合演算子。
174
-
175
-
176
-
177
- cell.textLabel?.text = rp[ApiKey.FullName] as? String ?? ""
178
-
179
- cell.detailTextLabel?.text = rp[ApiKey.Language] as? String ?? ""
180
-
181
- cell.tag = indexPath.row
182
-
183
- return cell
184
-
185
- }
186
-
187
-
188
-
189
- override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
190
-
191
- RepoToPass = indexPath.row
192
-
193
- performSegue(withIdentifier: Segues.ToProfileDetail, sender: self)
194
100
 
195
101
  }
196
102
 

3

a

2020/09/09 09:40

投稿

kazuki_user
kazuki_user

スコア147

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,20 @@
16
16
 
17
17
 
18
18
 
19
+ 自分のXcode↓
20
+
21
+ ![イメージ説明](39dd5dee9e079bdccbe17a5e9f5bd9a7.png)
22
+
23
+
24
+
25
+ これが無い
26
+
27
+
28
+
29
+ ![![イメージ説明](8beb948fecd4744adbc9ee2dab561e2c.png)](b030681d475777c429d62b1c91b80aa3.png)
30
+
31
+
32
+
19
33
  ## コード
20
34
 
21
35
 

2

2020/09/09 09:33

投稿

kazuki_user
kazuki_user

スコア147

test CHANGED
@@ -1 +1 @@
1
- 画面が真っ白で、EXC_BAD_ACCESS (code=2, address=0x7ffee12bafc8)出る。
1
+ EXC_BAD_ACCESSが出る。【Add Exception BreakPoint無い..】
test CHANGED
@@ -10,13 +10,9 @@
10
10
 
11
11
 
12
12
 
13
- **プログラムのOSキャチ例外(不正アセス)や、無限ループ**が原因とあったのですが
13
+ [**Xcodeでデバッ実行中にクラッシュした時に捗るブレーポイント設定**](https://qiita.com/mono0926/items/bf70c7ef15db046ee163)を参考に
14
14
 
15
- 以下のコードのどこが原因なのでしょうか?
16
-
17
-
18
-
19
- 大雑把な質問になっしまい恐縮ですが、ご返信頂けすと嬉しいです
15
+ **Add Exception BreakPoint**を探しみたのですが、それもありせん
20
16
 
21
17
 
22
18
 

1

a

2020/09/09 09:31

投稿

kazuki_user
kazuki_user

スコア147

test CHANGED
File without changes
test CHANGED
@@ -50,11 +50,7 @@
50
50
 
51
51
  var repo: [[String: Any]]=[]
52
52
 
53
-
54
-
55
- var repositoryApi = RepositoryApi()
53
+
56
-
57
-
58
54
 
59
55
  override func viewDidLoad() {
60
56