2015-01-02 14 views
18

Tôi nhận được Nhiều phương pháp có tên 'đếm' được tìm thấy với kết quả không khớp, loại tham số hoặc lỗi thuộc tính trong khi xây dựng ứng dụng. Ứng dụng hoạt động tốt trong 32 bit. Tôi đã thay đổi nó thành 64 bit theo Apple guideline. Tôi đã gọi số này Link nhưng không nhận được trợ giúp nào.Xcode 6.1: Nhiều phương pháp có tên 'đếm' được tìm thấy với kết quả không khớp, kiểu tham số hoặc thuộc tính

Tôi đã thử nghiệm ứng dụng trên nhiều thiết bị trên trình mô phỏng. Nó hoạt động tốt trên 32 bit nhưng sẽ nhắc lỗi trong 64 bit. Tại sao lại như vậy?

-(void)serviceSuccessFulForPatientSelect:(id)response 
{ 
    [self hideOverlay]; 
    if([response isKindOfClass:[NSArray class]]) 
    { 
     if([response count]>0) 
     { 
      if(1) 
      { 
       ... 
      } 
     } 
    } 
    [refillDetailTable reloadData]; 

} 

Error

+0

Cố gắng đúc đáp ứng với NSArray trước khi gọi "đếm". –

Trả lời

9

Giải pháp 1: tôi đã tuyên bố tính là bất động sản trong một bộ điều khiển xem. Tôi đã đổi tên nó thành CountValue và sự cố đã được giải quyết.

Giải pháp 2: Bạn có thể nhập truyền sang kiểu dữ liệu thích hợp.

if([(NSArray *) response count]>0) { 
    ... 
} 

Giải pháp này không khả thi trong trường hợp của tôi vì có 1000 địa điểm chứa [response count].

22
if([response count]>0) 

response là một id đây, sai số cho thấy có rất nhiều phương pháp được gọi là count mà trở lại các loại khác nhau - intNSInteger Tôi nghĩ là khác nhau trong 64-bit, nhưng giống nhau ở 32.

Để sửa, thực hiện một dàn diễn viên:

if([(NSArray*)response count]>0) 
+1

Nó không khả thi để đúc vì có khoảng 1000 địa điểm được thay đổi ... Bất kỳ sửa chữa nào khác –

+1

Hàng ngàn địa điểm? Cách khác của bạn là tìm phương thức đếm khác (có lẽ trong mã của bạn) và thay đổi kiểu trả về. Nhưng nếu bạn có hàng ngàn đối tượng id bạn đang đếm, điều đó nghe có vẻ sai. – jrturton

0

Kiểm tra phản ứng của bạn, là có bất cứ tài sản với tên đếm

+0

nếu nó có vấn đề gì? –

Các vấn đề liên quan