demo ๊ฐ๋ฐ - 6 : ๋๋ฐ์ด์ค ํํฐ๋ง, model ์์ฑ, UI์์ฑ
์ค๋์ ์ข ๋ง์ด์์ ํ ๊ฒ ๊ฐ๋ค.
์ผ๋จ ์ด ์ ์ ํ๋ ค๊ณ ํ๋๊ฒ
์ด๋ฆ์ด nil์ธ ๊ธฐ๊ธฐ๋ค์ด ๋ค ๋ณด์ฌ์ง๊ณ ์ด๋ฏธ ํ ์ด๋ธ ๋ทฐ์ ์๋ ๊ธฐ๊ธฐ๋ค๋ ์ค๋ณต๋ผ์ ๊ณ์ ๋ณด์ฌ์ค์
์ค๋ณต๊ฒ์ฌ / nil ๊ฒ์ฌ๋ฅผ ํตํด์ ๋ฆฌ์คํธ๋ฅผ ๊นจ๋ํ๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ฑฐ์๋๋ฐ ์ด๊ฑธ ๊ณ ์ณค๋ค!
func serialDidDiscoverPeripheral(peripheral: CBPeripheral, RSSI: NSNumber?) {
print("=== ScanViewController: ํ๋กํ ์ฝ ํจ์ ํธ์ถ ===")
for item in peripheralList {
if item.peripheral.identifier == peripheral.identifier {
print(">> ์ค๋ณต ๊ฒ์ฌ <<")
print(">> ์ค๋ณต๋ ๋๋ฐ์ด์ค ์ด๋ฆ: " + (item.peripheral.name ?? "") + " <<")
return
}
}
if peripheral.name == nil || peripheral.name == "" {
print(">> ์ด๋ฆ์ด ์๋ ๋๋ฐ์ด์ค ๊ฑธ๋ฌ๋ด๊ธฐ <<")
print("*** ์ด๋ฆ ์๋ ๋๋ฐ์ด์ค ์ ๋ณด: " + peripheral.description + " ***")
return
}
๊ธฐ๊ธฐ ๊ฒ์ ๋ ๋ง๋ค ํธ์ถ๋๋
serialDidDiscoverPeripheral ํจ์ ์์๋ค๊ฐ ์ค๋ณต๋๋ ๋๋ฐ์ด์ค๋ฅผ ๊ฑฐ๋ฆฌ๊ณ
์ด๋ฆ์ด ์๋๊ฑธ ๊ฑธ๋ฌ๋๋ค.
์๋ ์๋๋ก์ด๋ ๋ฒ์ ์ฑ์ ๋ณด๋๊น ์ํํ์ง ํ ๋ 1์ฐจ์ ์ผ๋ก ํ๋ ๊ฒ๋ค์ด
์ด๋ฆ์ด ์๋ Device ๊ฑธ๋ฌ๋ด๊ธฐ, ์ค๋ณต MAC ๊ฑธ๋ฌ๋ด๊ธฐ ์๋ค.
์ผ๋จ ์ด๋ ๊ฒ ํ๋๊น ๋ฆฌ์คํธ๊ฐ ๊น๋ํ๊ฒ ๋์๋ค.
๊ทธ๋ฆฌ๊ณ ์๋๋ก์ด๋ ๋ฒ์ ์ ๋ณด๋ Device Model์ ํด๋์ค๋ก ์ ์ธํด๋๊ณ ๊ทธ ์์
ssid, bssid, uuid, vendor, type, hashcode, rist, rssi ๋ฑ๋ฑ์ ๋ณ์๋ก ๊ฐ๊ฒ ํ๋ค.
์ง๊ธ์ ๊ทธ๋ฅ ๊ฒ์๋ ๋ ๋ง๋ค ๊ฒจ์ฐ ์ด๋ฆ๋ง ๋ณด์ฌ์ฃผ๋ ์ ๋๋ผ ๋ชจ๋ธ์ด ํ์๊ฐ ์์๋๋ฐ
๋์ค์ ์ํ๋๊น์ง ํ๋จํด์ ๋ณด์ฌ์ฃผ๊ณ ํ๋ ค๋ฉด ์ ์ฅํ๋๊ฒ ํ์ํ ๊ฒ ๊ฐ์์
๋ชจ๋ธ์ ๊ตฌ์กฐ์ฒด๋ก ๋ง๋ค์๋ค.
import Foundation
import CoreBluetooth
struct DeviceModel {
var ssid: String = ""
var bssid: String?
var vendor: String = ""
var uuid: CBUUID
var hashCode: Int = 0
var type: Int = 0
var major: Int = 0
var rssi: NSNumber = 0.0
var risk: Int = 0
var icon: String = ""
}
์ผ๋จ์ ๋๊ฐ์ด ์ด๋ ๊ฒ ๋ง๋ค์๋๋ฐ ์์ง ์ ์ธ๋ง ํ๊ณ ์ฌ์ฉ์ ์ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์๋๋ก์ด๋ ํ๋ก์ ํธ์์ asset๋ค์ ๊ฐ์ ธ์์ ๋ฐฐ๊ฒฝ์ ๋ฐ๊พธ๊ณ ์์ด์ฝ๋ ์ฌ์ฉํ๋ค.
์ด๋ฏธ์ง๋ก ๋ฐฐ๊ฒฝ์ ๋ฐ๊พธ๋๊ฑฐ๋ผ
scanListTableView.backgroundColor = UIColor(patternImage: (UIImage(named: "dpbgblue_00")!))
self.view.backgroundColor = UIColor(patternImage: (UIImage(named: "dpbgblue_00")!))
์ด ๋๊ฐ์ง ์ฝ๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ๊ฟจ๊ณ
๋ทฐ ์ ์ ํฌ๋ช ์ผ๋ก ํ๊ธฐ ์ํด์
self.backgroundColor = UIColor.clear
์ด๋ ๊ฒ ๋ง๋ค์๋ค.
๊ทธ๋์ ํ์ฌ๊น์ง ์์ฑ๋ ๋ชจ์ต์
์ด๋ ๊ฒ๊ณ
์ถํ์ ๋ชจ๋ธ ์๋ฃํ๋ ๋ฐ๊ฟ์ผํ ๊ฒ ๊ฐ๊ณ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์์ ์ฌํญ์ด ์๊ธฐ๊ธด ํ ๊ฒ ๊ฐ๋ค.
์ผ๋จ ์ค๋์ ์ฌ๊ธฐ์ ๋..
Reference
https://developer.apple.com/documentation/corebluetooth/cbperipheraldelegate/1518744-peripheral
Apple Developer Documentation
developer.apple.com