-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的變量分配給它的初始化的結果,並更改函數的返回類型或是否有另一種方法,我可以做到這一點?
對不起,愚蠢的問題,我要問你,但是這如何初始化自我對象和一些原因init函數沒有出現,我真的不知道爲什麼 – tudoricc 2014-09-25 08:31:18
任何想法,爲什麼我沒有得到這種形式的初始化? – tudoricc 2014-09-25 11:53:02