스토리 보드 경고 : 프로토 타입 테이블 셀에는 재사용 식별자가 있어야합니다.


123

스토리 보드에서이 경고를 받고 있습니다. 프로토 타입 테이블 셀에는 재사용 식별자가 있어야합니다.

속성 검사기에서 식별자 이름을 변경했지만 경고가 제거되지 않은 것 같습니다.

어떤 제안?


잘못된 필드를 입력했거나 테이블보기가 두 개 이상 있습니다. 속성 검사기의 스크린 샷을 게시 할 수 있습니까?
jrturton

3
이제 괜찮아 메이트. 해결책을 찾았습니다. 식별자의 값은 재사용 식별자와 동일해야합니다. :)
K.Honda

모든 셀에 대한 식별자를 설정 했습니까?
Mick MacCallum 2012

안녕 혼다! 동일한 오류가 발생하기 때문에 무엇을했는지 말씀해 주시겠습니까?
Varun Mehta

2
때때로 (현재 최신 Xcode 5 Beta 5 (5B103i) 사용) 스토리 보드에서 오류 / 경고의 잘못된 위치를 강조 표시하는 경우가 있습니다. 따라서 경고를 클릭하면 유사한 경고가 이미 수정되었을 수있는 잘못된 위치가 표시되는 경우가 있습니다. 스토리 보드에있는 테이블 뷰를 수동으로 살펴보고 식별자가 누락 된 다른 셀이 있는지 확인하는 것이 좋습니다. 위의 경고로 내 문제가 해결되었습니다. 이 주제가 문제 해결 방법을 이해하는 데 도움이 되었기 때문에 질문 해 주신 @ K.Honda에게 감사드립니다.
Justas

답변:


159

경고를 종료하려면 셀 식별자에 이름을 지정해야합니다.

여기에 이미지 설명 입력


14
나에게 일어났다. 가까운 엑스 코드 -를 열고 식별자 변경
Idan Magled

7
경고가 남아 있으면 스토리 보드 어딘가에 식별자가없는 셀이 여전히 있음을 의미합니다
saimonx 2014-06-04

프로토 타입 셀이 두 개 이상인 경우 모두 식별자를 지정해야합니다. 그렇지 않으면 프로토 타입 셀에서 숫자를 1로 설정하면됩니다.
user1700737 2014-10-21

6
이 가짜 경고를 없애기 위해 Derived Data 폴더 (Windows 재부팅에 해당하는 Xcode)를 삭제하고 다시 빌드해야했습니다.
Michael McGuire

이것은 나를 위해 일했습니다 : Xcode를 닫고 Finder에서 / Users / username / Library / Developer / Xcode / DerivedData를 열고 DerivedData 폴더 자체가 아닌 모든 내용을 삭제하십시오.
dldnh

18

또 다른 방법은 .xib를 프로그래밍 방식으로 사용하여 셀을 정의하는 경우 Attributes Inspector에서 Table View 'Prototype Cells'속성을 0으로 설정하는 것입니다.

Attributes Inspector에서 프로토 타입 셀을 0으로 설정


9

스토리 보드는 실제로 XML 파일이므로 또 다른 트릭은 Xcode가 아닌 텍스트 편집기로 스토리 보드를 열고 모든 tableViewCell 노드를 찾는 것입니다. 예를 눌러 들어 CMD + F 를 입력 <tableViewCell contentMode="scaleToFill"하고 Enter 키를 누릅니다. 이 행과 동일한 행을 찾을 수 있습니다.

<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="GenericCellID" id="kBr-Qn-Tki">

reuseIdentifier="GenericCellID"키 값에 주의를 기울이십시오 . 경고를 발생시키는 행 (재사용 식별자 없음)에는 이러한 키 값이 없습니다. 텍스트 편집기에서 위의 tableViewController노드를 보면 aleroot의 답변에 따라 Xcode의 스토리 보드 편집기에서 확인하고 수정해야하는 클래스 이름 이있는 노드 가 표시됩니다 .


1
스토리 보드 파일 Open As>>Source Code
NSTJ

4

재사용 식별자를 설정 한 후에도 Xcode 경고가 여전히 사라지지 않으면 메뉴 "제품-> 정리"를 시도하십시오. 이것은 나를 도왔고 그 후 경고가 더 이상 나타나지 않았습니다.


2

이 경고를 두 번 클릭하면 약간의 거위 추적이 발생할 수 있으므로 (특정 UITableViewCell이 선택되지 않음) 이러한 경고 중 일부는 자동으로 해결되지만 일부는 그렇지 않습니다 .

Storyboard에서 모든 셀에 태그를 지정했다고 확신하는 경우 프로젝트를 다시 빌드하십시오. 경고가 사라질 수 있습니다 (제 것처럼).


2

환영 인사 : XCode를 다시 시작하는 것이 저에게 효과적이었습니다.


1

Xcode 7에 대한 경고를 받았습니다. 저는 Swift로 작업하고 있습니다. 초기 뷰 컨트롤러에 대한 탐색 컨트롤러를 추가하지 않았습니다. 그렇게했을 때 .. 스토리 보드에서이 경고를 받았습니다. 내가 한 일은 :

  1. 두 개의 segue가 있습니다
    1. 탐색 컨트롤러에서 루트 뷰 컨트롤러로
    2. 루트 뷰 컨트롤러에서 초기 뷰 컨트롤러로.
  2. 루트 뷰 컨트롤러를 초기 뷰 컨트롤러에 연결하는 segue를 선택합니다.
  3. 식별자 이름 지정
  4. 컨트롤러의 "프로토 타입"으로 작성된 부분을 선택합니다 .--> 옵션으로 식별자가 표시됩니다.
  5. 이전에 입력 한 것과 동일한 식별자 이름을 붙여 넣습니다.

경고는 .. sdk를 청소하지 않으면 :)


1

복원 ID 대신 객체에 재사용 식별자 를 설정하고 있는지 확인하십시오 . 둘 다 스토리 보드를 통해 사용할 수 있으며 쉽게 혼동 할 수 있습니다.

스토리 보드의 XML 파일에서 당신은 설정 싶은 것 reuseIdentifier,하지 restorationIdentifier.


0

이 오류는 여러 개의 프로토 타입 셀 (tableview 속성에 있음)이 있고 모든 셀에 재사용 식별자를 제공하지 않은 경우 발생합니다.


나도 본 적이 있는데, 한 번에 모든 셀의 이름을 지정하는 방법이 있습니까? 아니면 이러한 경고를 제거하는 다른 방법이 있습니까?
CatsLoveJazz 2014-08-20

1
모든 프로토 타이 셀에는 고유 한 이름이 필요합니다. 그래서 자동으로 할 수있는 방법은 없습니다
빈센트

0

식별자는 .m 파일에서 참조하는 이름입니다. 채워지지 않으면 셀을 참조 할 수 없습니다.


0

이것은 프로그래밍 방식으로 재사용 식별자를 설정하기위한 것입니다.

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath*)indexPath 
{
    static NSString *cellIdentifier = @"wot";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

    if (!cell)
        cell = [[UITableViewCell alloc] initWithStyle: someStyle reuseIdentifier: cellIdentifier];

    return cell;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.