質問編集履歴

4

訂正しました!

2018/01/11 13:23

投稿

SKMT
SKMT

スコア57

test CHANGED
@@ -1 +1 @@
1
- [swift4]Alamofireを使っJSONデータを送信する
1
+ [swift4]プッシュ通知のためにトークン取得につい
test CHANGED
@@ -1,12 +1,12 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- Alamofire使っtextfieldに打ち込まれた文字と位置情報JSONデータとてサーバに送信するプログラムが作りたいです
3
+ トークン取得しプッシュ通知を出したいのですがアップルdeveloperの有料登録をしきないものでか?
4
4
 
5
5
 
6
6
 
7
7
  ###エラーメッセージ
8
8
 
9
- Alamofiremをプログラムimportするとこまではできたのですが使い方がわかりませんネット調べもよくわからなかったので質問しました
9
+ https://i-app-tec.com/ios/apns-device-token.html のサイト参考試してみたのですが、App IDsのところ詰まってしまいます
10
10
 
11
11
 
12
12
 

3

質問内容を少し変更しました

2018/01/11 13:23

投稿

SKMT
SKMT

スコア57

test CHANGED
@@ -1 +1 @@
1
- [swift4]タイマーのリセット
1
+ [swift4]Alamofireを使ってJSONデーを送信する
test CHANGED
@@ -1,12 +1,12 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- イマをリセットする関数を作り何かを判定し際に一度リセットしてそこから時間を再計測したいです
3
+ Alamofireを使ってtextfieldに打ち込まれた文字と位置情報をJSONデーとしてサバに送信するプログラムが作りたいです
4
4
 
5
5
 
6
6
 
7
7
  ###エラーメッセージ
8
8
 
9
- 一度リセット関数呼び出すとこから何度もリセット関数が呼ばれた挙動になりす。
9
+ Alamofiremプログラムにimportとこまではできたのですが使い方がわりません、ネットで調べてもくわからかったので質問しした
10
10
 
11
11
 
12
12
 
@@ -14,80 +14,8 @@
14
14
 
15
15
  ###該当のソースコード
16
16
 
17
- ```swift4
17
+ ``` swift4
18
18
 
19
- // 時間の表示
20
19
 
21
- func displayTime(_ time: TimeInterval) {
22
-
23
- let minute = (Int)(fmod((time/60), 60))
24
-
25
- let second = (Int)(fmod(time, 60))
26
-
27
- let msec = (Int)((time - floor(time))*100)
28
-
29
-
30
-
31
- timeL.text = String(format: "%02d : %02d : %02d", minute, second, msec)
32
-
33
- }
34
-
35
-
36
-
37
- // 時間の計測
38
-
39
- @objc func timerCounter() {
40
-
41
- let currentTime = totalTime + Date().timeIntervalSince(startTime)
42
-
43
- displayTime(currentTime)
44
-
45
- }
46
-
47
-
48
-
49
- // タイマーのスタート
50
-
51
- func startTimer() {
52
-
53
- if timer != nil {
54
-
55
- timer.invalidate()
56
-
57
- }
58
-
59
- else {
60
-
61
- startTime = Date();
62
-
63
- }
64
-
65
- timer = Timer.scheduledTimer(
66
-
67
- timeInterval: 0.01,
68
-
69
- target: self,
70
-
71
- selector: #selector(self.timerCounter),
72
-
73
- userInfo: nil,
74
-
75
- repeats: true)
76
-
77
- }
78
-
79
-
80
-
81
- // タイマーのリセット
82
-
83
- func resetTimer() {
84
-
85
- startTime = Date();
86
-
87
- totalTime = 0.0
88
-
89
- displayTime(totalTime)
90
-
91
- }
92
20
 
93
21
  ```

2

質問内容を少し変えてみました

2018/01/10 14:45

投稿

SKMT
SKMT

スコア57

test CHANGED
@@ -1 +1 @@
1
- [swift4]システム音連続再生・停止
1
+ [swift4]タイマーリセット
test CHANGED
@@ -1,12 +1,12 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- したアラーを表示してシステム音鳴らアラートのOKを押すとアラームも止めるという仕組みを作りたいですが止め方がわかりません
3
+ イマーリセットする関数を作り何かを判定した一度リセットしてそこから時間再計測したいです
4
4
 
5
5
 
6
6
 
7
7
  ###エラーメッセージ
8
8
 
9
- 音楽の連続再生、停止はできたのですがシステム音の場合ど書いていいかわかりません
9
+ 一度リセット関数を呼び出とそこから何度もリセット関数呼ばれたよな挙動になります。
10
10
 
11
11
 
12
12
 
@@ -16,49 +16,77 @@
16
16
 
17
17
  ```swift4
18
18
 
19
- override func viewDidLoad() {
19
+ // 時間の表示
20
20
 
21
- super.viewDidLoad()
21
+ func displayTime(_ time: TimeInterval) {
22
+
23
+ let minute = (Int)(fmod((time/60), 60))
24
+
25
+ let second = (Int)(fmod(time, 60))
26
+
27
+ let msec = (Int)((time - floor(time))*100)
22
28
 
23
29
 
24
30
 
25
- let audioPath = Bundle.main.path(forResource: "sample", ofType:"mp3")!
31
+ timeL.text = String(format: "%02d : %02d : %02d", minute, second, msec)
26
32
 
27
- let audioUrl = URL(fileURLWithPath: audioPath)
33
+ }
28
34
 
29
-
35
+
30
36
 
31
- var audioError:NSError?
37
+ // 時間の計測
32
38
 
33
- do {
39
+ @objc func timerCounter() {
34
40
 
35
- audioPlayer = try AVAudioPlayer(contentsOf: audioUrl)
41
+ let currentTime = totalTime + Date().timeIntervalSince(startTime)
36
42
 
37
- } catch let error as NSError {
43
+ displayTime(currentTime)
38
44
 
39
- audioError = error
45
+ }
40
46
 
47
+
48
+
49
+ // タイマーのスタート
50
+
51
+ func startTimer() {
52
+
41
- audioPlayer = nil
53
+ if timer != nil {
54
+
55
+ timer.invalidate()
42
56
 
43
57
  }
44
58
 
45
-
59
+ else {
46
60
 
47
- if let error = audioError {
61
+ startTime = Date();
48
-
49
- print("Error (error.localizedDescription)")
50
62
 
51
63
  }
52
64
 
53
-
65
+ timer = Timer.scheduledTimer(
54
66
 
55
- audioPlayer.delegate = self
67
+ timeInterval: 0.01,
56
68
 
57
- audioPlayer.prepareToPlay()
69
+ target: self,
58
70
 
59
- audioPlayer.numberOfLoops = -1
71
+ selector: #selector(self.timerCounter),
60
72
 
61
-
73
+ userInfo: nil,
74
+
75
+ repeats: true)
76
+
77
+ }
78
+
79
+
80
+
81
+ // タイマーのリセット
82
+
83
+ func resetTimer() {
84
+
85
+ startTime = Date();
86
+
87
+ totalTime = 0.0
88
+
89
+ displayTime(totalTime)
62
90
 
63
91
  }
64
92
 

1

コードを変えました

2018/01/09 05:26

投稿

SKMT
SKMT

スコア57

test CHANGED
@@ -1 +1 @@
1
- [swift4]システム音める
1
+ [swift4]システム音の連続再生・停
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ###エラーメッセージ
8
8
 
9
- Audiotoolboxだと短い再生するだけみ困ってま。止め方や電話の呼び出し音のな長音の出し方を教えていただきたです
9
+ 楽の連続再生、停止はできですがシステム音の場合どいていいかわかりません
10
10
 
11
11
 
12
12
 
@@ -16,76 +16,50 @@
16
16
 
17
17
  ```swift4
18
18
 
19
- @IBAction func karibotan(_ sender: Any) {
19
+ override func viewDidLoad() {
20
20
 
21
- //アラート表示
21
+ super.viewDidLoad()
22
22
 
23
- let alert = UIAlertController(title: nil, message: nil, preferredStyle: .alert)
23
+
24
24
 
25
- alert.title = "タイトル"
25
+ let audioPath = Bundle.main.path(forResource: "sample", ofType:"mp3")!
26
26
 
27
- alert.message = "アラート表示"
27
+ let audioUrl = URL(fileURLWithPath: audioPath)
28
28
 
29
- alert.addAction(
29
+
30
30
 
31
- UIAlertAction(
31
+ var audioError:NSError?
32
32
 
33
- title: "OK",
33
+ do {
34
34
 
35
- style: .default,
35
+ audioPlayer = try AVAudioPlayer(contentsOf: audioUrl)
36
36
 
37
- handler: {(action) -> Void in
37
+ } catch let error as NSError {
38
38
 
39
- self.hello(action.title!)
39
+ audioError = error
40
40
 
41
- })
42
-
43
- )
44
-
45
- self.present(
46
-
47
- alert,
48
-
49
- animated: true,
41
+ audioPlayer = nil
50
-
51
- completion: {
52
-
53
- print("アラートが表示された")
54
42
 
55
43
  }
56
44
 
45
+
46
+
47
+ if let error = audioError {
48
+
49
+ print("Error (error.localizedDescription)")
50
+
57
- )
51
+ }
58
52
 
59
53
 
60
54
 
61
- //アラーム
55
+ audioPlayer.delegate = self
62
56
 
63
- var soundIdRing:SystemSoundID = 1005
57
+ audioPlayer.prepareToPlay()
64
58
 
65
-
66
-
67
- if let soundUrl = CFBundleCopyResourceURL(CFBundleGetMainBundle(), nil, nil, nil){
68
-
69
- AudioServicesCreateSystemSoundID(soundUrl, &soundIdRing)
70
-
71
- AudioServicesPlaySystemSound(soundIdRing)
59
+ audioPlayer.numberOfLoops = -1
72
-
73
- }
74
60
 
75
61
 
76
62
 
77
63
  }
78
64
 
79
65
  ```
80
-
81
-
82
-
83
- ###試したこと
84
-
85
- 課題に対してアプローチしたことを記載してください
86
-
87
-
88
-
89
- ###補足情報(言語/FW/ツール等のバージョンなど)
90
-
91
- より詳細な情報