2011-08-25 5 views
0

내 질문과 제목이 일치하지 않지만 죄송합니다. 내비게이션 컨트롤러와 3 개의보기가있는 앱이 있습니다. 서버에 연결하여 친구들과 이야기하는 앱입니다. 문제는, 내 rootViewController, 로그인 화면, 두 번째보기 마녀를 친구 목록입니다 호출합니다. 목록에서 친구를 클릭하면 세 번째 화면 인 채팅 화면으로 이동합니다. 사용자가 로그인 할 때 (rootview) 변수에 사용 된 사용자 이름을 저장하려고 했으므로 채팅 화면에서 세 번째보기에서 사용할 수 있으므로 메시지를 보낼 때 그의 이름을 사용할 수 있습니다. 그것, 그리고 서버에서 정보를 검색하는 동안, 나는 너무 매개 변수로 자신의 이름을 사용할 수 있습니다. 그런데 SQLite가 메시지와 사용자를 저장하는 가장 좋은 방법입니까? 코어 데이터 =/다른 탐색 스택의 변수

답변

0

일을 느슨하게 결합하려면 각 UIViewController 하위 클래스를 인스턴스화 할 때 userName을 전달하는 것이 좋습니다. (단위 테스트를 더 쉽게 만듭니다.)

예 :

// LoginViewController -> user logs in 
FriendsViewController *friendsViewController = [[FriendsViewController alloc] initWithUserName:userName]; 
[self.navigationController pushViewController:friendsViewController]; 
[friendsViewController release]; friendsViewController = nil; 

// FriendsViewController -> user selects a friend 
ChatViewController *chatViewController = [[ChatViewController alloc] initWithUserName:userName]; 
[self.navigationController pushViewController:chatViewController]; 
[chatViewController release]; chatViewController = nil; 

핵심 데이터가 두려워하지 말고 많은 훌륭한 책이 있습니다.

+0

고마워, 난 그냥 거기에 설정된 var를 사용하여 애플 리케이션 대리인을 사용하는 방법을 발견했다. 이 메소드에서 작성한 "initWithPassword"가 있습니까? – Erakk

+0

이것은 일반적으로 전역 변수를 생성하는 것처럼 나쁜 관행으로 간주됩니다. –

+0

'initWithUserName'은 작성해야 할 사용자 정의 메소드 였으므로'initWithPassword' 메소드가 필요합니다. –

0

코어 데이터가 그렇게 나쁘지 않습니다. This은 핵심 데이터를 시작하기 위해 사용했던 안내서입니다. 일단 모든 것이 작동하는 방식으로 머리를 싸면 정말 그렇게 나쁘지 않습니다.

일 수는 있지만 많은 코드가 있습니다. 핵심 데이터는 사용하기가 훨씬 쉽습니다.

+0

그 링크를 확인해 보겠습니다. – Erakk