我是Objective C的新手,並且對代碼的行爲有些困惑。Objective C不兼容
.m
文件:
@interface MEDTNetworkAuthentication()
@property (nonatomic,retain) NSString *certificate;
@implementation MEDTNetworkAuthentication
-(void)setCertificate:(NSData*) certificateData
{
self.certificate=[self getCarelinkCertificateUsingData:certificateData];
return;
}
@end
.h
文件:在之前的代碼現在
#import <Foundation/Foundation.h>
@protocol NetworkAuthenticationDelegate;
@interface MEDTNetworkAuthentication : NSObject<NSURLSessionDelegate>
-(void)authenticate:(NSData*) certificateData andAuthData:(NSString*) authorization andURLSession:(NSURLSession*) careLinkAuthenticationSession;
-(void)setCertificate:(NSData*) certificateData;
@end
,該authenticate
在現有的功能。之前,我在設置self.certificate
之後更改了放置return;
,並且其功能如預期。但是因爲我想要以前的功能並且不想擺脫這一切,所以我想創建一個新功能(setCertificate
)。但是,當我將該功能添加到.h
和.m
文件時,現在兩條線設置self.certertificate
給我一個錯誤,說Assigning to 'NSData *__strong' from incompatible type 'NSString *'
。當我從.h
文件中刪除setCertificate
這一行時,錯誤消失,但我現在(明顯)無法在m文件外部訪問該函數。這是怎麼回事?
您遺漏了'cert'屬性的數據類型。添加到你的問題。 – rmaddy
僅供參考 - 當您需要幫助提供問題的代碼時,請將真實的確切代碼複製並粘貼到您的問題中。你的問題已經減少太多了。 – rmaddy
更新 - 對不起 – Kevin