2014-09-25 77 views
-1

我想將使用Obj-C編寫的自定義MKAnnotationView轉換爲Swift,並且當我想要initWithAnnotation時出現錯誤。嘗試初始化註釋時出現的問題查看

下面我將同時提供了ObjC和雨燕代碼:

class JPThumbnailAnnotationView: MKAnnotationView,JPThumbnailAnnotationViewProtocol { 


var coordinate :CLLocationCoordinate2D 
var imageView : UIImageView 
var titleLabel : UILabel 
var subtitleLabel : UILabel 
var disclosureBlock : JPThumbnail.SequencerNext 

func initWithAnnotation(annotation : MKAnnotation) { 

    self = MKAnnotationView(annotation: annotation, reuseIdentifier: kJPSThumbnailAnnotationViewReuseID) //HERE IS WHERE I GET THE ERROR 

     self.canShowCallout = true 
     self.frame = CGRectMake(0, 0, kJPSThumbnailAnnotationViewStandardWidth, kJPSThumbnailAnnotationViewStandardHeight) 
     self.centerOffset = CGPointMake(0, -kJPSThumbnailAnnotationViewVerticalOffset) 


} 

與Objective-C的版本是

- (id)initWithAnnotation:(id<MKAnnotation>)annotation { 
    self = [super initWithAnnotation:annotation reuseIdentifier:kJPSThumbnailAnnotationViewReuseID]; 

    if (self) { 
    self.canShowCallout = NO; 
    self.frame = CGRectMake(0, 0, kJPSThumbnailAnnotationViewStandardWidth, kJPSThumbnailAnnotationViewStandardHeight); 
    self.backgroundColor = [UIColor clearColor]; 
    self.centerOffset = CGPointMake(0, -kJPSThumbnailAnnotationViewVerticalOffset); 

    _state = JPSThumbnailAnnotationViewStateCollapsed; 

    [self setupView]; 
} 

return self; 

}

我得到的錯誤是:Can not assign self in a method

有沒有辦法讓我自己在我的情況下或者我應該只是創建一個類型MKAnnotationView的變量分配給它的初始化的結果,並更改函數的返回類型或是否有另一種方法,我可以做到這一點?

回答

0

你這樣做是錯誤的init方法,你應該調用父類的初始化是這樣的,

func initWithAnnotation(annotation : MKAnnotation) { 

    super.init(annotation: annotation, reuseIdentifier: kJPSThumbnailAnnotationViewReuseID) //HERE IS WHERE I GET THE ERROR 
    self.canShowCallout = true 
    self.frame = CGRectMake(0, 0, kJPSThumbnailAnnotationViewStandardWidth, kJPSThumbnailAnnotationViewStandardHeight) 
    self.centerOffset = CGPointMake(0, -kJPSThumbnailAnnotationViewVerticalOffset) 
} 
+0

對不起,愚蠢的問題,我要問你,但是這如何初始化自我對象和一些原因init函數沒有出現,我真的不知道爲什麼 – tudoricc 2014-09-25 08:31:18

+0

任何想法,爲什麼我沒有得到這種形式的初始化? – tudoricc 2014-09-25 11:53:02

相關問題