2012-10-13 3 views
0

나는 이것이 어리석은 질문이지만, 불행히도 나는 많은 사람들처럼 (물론 어쩌면 지금은 하하를 배우지 않는다 ...) 많은 멍청한 녀석이라고 생각한다. 어쨌든UITableView의 QuickDialog 및 NSFetchedResultsController

...

나는 내 자신의 클래스 (MyListTableViewController)를 통해 채워집니다 jQuery과를 포함한 기존 프로젝트가 있습니다. 이 클래스는 현재 NSFetchedResultsController를 기본적으로 설정하는 객체를 하위 클래스로 만듭니다. 이 점을 감안

, 난 항상 읽은 예제와 문서는 기본적으로 모두의 마음에있는 UIViewController 하위 클래스로 QuickDialog이 기능에 액세스하기 위해 QuickDialogController를 서브 클래스의 필요성을 보여 ..

문제는 내가 동일한 UITableView/인스턴스에 대해 QuickDialogController 및 NSFetchedResultsController 클래스를 함께 사용하는 것을 허용하는 방법을 알아낼 수 없다는 것입니다. ...

NSFetchedResultsController는 UITableView의 대리자 역할을하기 때문에 하위 클래스로 분류됩니다. 모든 UITableView 이벤트 등을 모니터링합니다 ... 대부분은 잘 알고 있습니다. 문제는 T입니다. 모자 QuickDialogController 또한 기본적으로 UIView (우리의 UITableView는 이미 하위 클래스)에 위임자 역할을하고 싶어한다는 것을 알 수 있습니다.

그래서 내 마음이 폭발 할 것입니다.

내 응용 프로그램이 밀접하게, 나는이 기능이 필요하지만, 내가 힘과 QuickDialog의 아름다움을 원하는 핵심 데이터에 연결되어 있기 때문에

이 ..

그래서 ...이 두 객체가 같은 집합 내에서 친절하게 함께 플레이하기 - QuickDialogController를 서브 클래스화할 수있는 방법이 있습니까? 그런 다음 NSFetchedResultsController를 일종의 델리게이트로 사용하거나 그 반대로 사용 하시겠습니까? 다시

, 죄송이 바보/멍청한 놈 질문 인 경우 ... 아직 ... 학습 만이 권리를 수행하고자하는 내가있는 UITableViewController를 위해 사용하고

예 (현재) 서브 클래스 레이아웃 ...

MyListTableViewController.h

#import <UIKit/UIKit.h> 
#import "CoreDataTableViewController.h" 

@interface MyListTableViewController : CoreDataTableViewController 

CoreDataTableViewController.h

16,아마 여기에 또 다른 질문은 다음과 같습니다 는 것이 가능 QuickDialogController를 서브 클래 싱 할 필요없이 QuickDialog 작업을 사용하는 것입니다. 그렇다면이 일의 함축적 의미는 무엇입니까? (가장 중요한 것은) 작은 예가 있습니까? 2 중 하나의 할당 된 인스턴스를 만들겠습니까? 내 질문이 노출 될 수있는 무지에 대해 미리 사과

....

답변

1

은 무엇 당신이하려고하는 것은 불가능합니다. ObjC는 당신이하려고하는 다중 상속을 허용하지 않습니다. 그래도 핵심 데이터 dataSource/delegate와 QuickDialog 데이터 소스/대리자가 동시에 작동하는 문제는 여전히 남아 있습니다.

어떤 식 으로든 결정해야합니다. 1 - QuickDialog 컨트롤러를 상속 한 다음 CoreData에서 데이터를 가져 와서 루트 요소에로드하는 논리를 추가하거나 CoreDataTableViewController를 사용하지 마십시오. 2 - CoreDataTableViewController에서 상속하고 QuickDialogTableView를 수동으로 만들고 클래스에 데이터 소스/위임자를 만듭니다.

# 2와 관련하여 QD는 IMHO와 같은 종류의 사용을 위해 만들어지지 않았습니다. 옵션 1을 사용하면 CoreData 데이터 로딩을 외부 클래스로 옮길 수 있습니다. 그런 다음 외부 요소를 루트 요소로로드 할 수 있습니다. 수백/수천 행이 있다면 QD를 사용하지 않을 것입니다.

+0

에두아르도 - 당신은 그 사람입니다. 대의원 소유권을 둘러싼 두 가지 문제가 내 머리를 폭발시키는 주요 문제였습니다. 좋은 점은 - 내 두뇌가 옳은 이유로 불평했다는 것이 밝혀졌습니다! 하하. 이 문제를 해결해 주셔서 감사합니다. 나는 당신의 첫 번째 제안에 실제로 갔다. 이것을 원래의 객체 클래스에서 깨기 위해 약간의 작업을했지만, 이전보다 더 가벼워 졌기 때문에 결과에 만족합니다. 다시 한번 고마워요! –

관련 문제