커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
ios 기기에 다운로드
[왕초보] 플러터(Flutter)로 시작하는 앱개발 종합반 v0
5주차
북마크
김*섭
댓글
7
추천
0
조회수
11
조회수
11
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


갖고 있는 휴대폰을 연결해서 vscode 우측하단에 표시되고 finder 에도 나타나는데 연결된 기기가 없다고

터미널에 표시됩니다. 기기가 나타나질 않습니다.




스파르타 즉문즉답



작성한 코드 및 에러 메세지

// ignore_for_file: unused_import


import 'dart:convert';


import 'package:flutter/material.dart';

import 'main.dart';


// Memo 데이터의 형식을 정해줍니다. 추후 isPinned, updatedAt 등의 정보도 저장할 수 있습니다.

class Memo {

Memo({

required this.content,

this.isPinned = false,

this.updateAt,

});


Map toJson() {

return {

'content': content,

'isPinned': isPinned,

'updateAt': updateAt?.toIso8601String(),

};

}


factory Memo.fromJson(json) {

return Memo(

content: json['content'],

isPinned: json['isPinned'] ?? false,

updateAt:

json['updateAt'] == null ? null : DateTime.parse(json['updateAt']),

);

}


String content;

bool isPinned;

DateTime? updateAt;

}


// Memo 데이터는 모두 여기서 관리

class MemoService extends ChangeNotifier {

MemoService() {

loadMemoList();

}


List<Memo> memoList = [

Memo(content: '장보기 목록: 사과, 양파'), // 더미(dummy) 데이터

Memo(content: '새 메모'), // 더미(dummy) 데이터

];


createMemo({required String content}) {

Memo memo = Memo(content: content);

memoList.add(memo);

notifyListeners(); // Consumer<MemoService>의 builder 부분을 호출해서 화면 새로고침

saveMemoList();

}


updateMemo({required int index, required String content}) {

Memo memo = memoList[index];

memo.content = content;

notifyListeners();

saveMemoList();

}


updatePinMemo({required int index}) {

Memo memo = memoList[index];

memo.isPinned = !memo.isPinned;

memoList = [

...memoList.where((element) => element.isPinned),

...memoList.where((element) => !element.isPinned)

];

notifyListeners();

saveMemoList();

}


deleteMemo({required int index}) {

memoList.removeAt(index);

notifyListeners();

saveMemoList();

}


saveMemoList() {

List memoJsonList = memoList.map((memo) => memo.toJson()).toList();

// [{"content": "1"}, {"content": "2"}]


String jsonString = jsonEncode(memoJsonList);

// '[{"content": "1"}, {"content": "2"}]'


prefs.setString('memoList', jsonString);

}


loadMemoList() {

String? jsonString = prefs.getString('memoList');

// '[{"content": "1"}, {"content": "2"}]'


if (jsonString == null) return; // null 이면 로드하지 않음


List memoJsonList = jsonDecode(jsonString);

// [{"content": "1"}, {"content": "2"}]


memoList = memoJsonList.map((json) => Memo.fromJson(json)).toList();

}

}




오류메시지입니다.

kissui-MacBook-Pro:mymemo_admob kiss$ flutter run --release

Connected devices:

macOS (desktop) • macos • darwin-x64   • macOS 13.6.6 22G630 darwin-x64

Chrome (web)  • chrome • web-javascript • Google Chrome 125.0.6422.77


No wireless devices were found.


[1]: macOS (macos)

[2]: Chrome (chrome)

Please choose one (or "q" to quit): 오오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴