我试图设置iPhone的Web服务URL 在登录视图中逻辑应该是: - 是否已设置服务URL?如果是的话,使用保存的默认值,如果没有提示。目标C - 在类实现中使用非静态方法
webServiceCall.h
@property (nonatomic,weak) NSString *webServiceUrlStr;
// getter and setter for webServiceUrlStr
- (NSString *) webServiceUrlStr;
- (void) setwebServiceUrlStr: (NSMutableString *) theUrl;
webServiceCall.m
- (NSString *) webServiceUrlStr
{
return _webServiceUrlStr;
}
- (void) setwebServiceUrlStr: (NSMutableString *) theUrl
{
_webServiceUrlStr = theUrl;
NSLog(@"Setting webServiceUrlStr = %@",_webServiceUrlStr);
}
在我loginviewcontroller我称之为:
if([self.webServiceCall webServiceUrlStr] != nil)
{
....set view stuff here
}
其工作正常。 现在我已经从我的观点设定的URL我想用它在WebServiceCall类
webServiceCall.m
//Basic method for calling a webservice with soap
+ (NSData *) callWebMethodWithSoapAction:(NSString*) soapAction withSoapEnvelop: (NSString *) soapEnvelop
{
NSString *wsURL = [self webServiceUrlStr]; <-- No Known class for selector 'webServiceUrlStr'
NSURL *webserviceUrl = [NSURL URLWithString:wsURL];
....etc
使webServiceURLStr静态解决了上述错误,但然后让未知的方法来我loginviewcontroller
为什么'callWebMethodWithSoapAction:withSoapEnvelop:'静态?使其成为实例功能。 – mostruash 2014-09-05 10:47:51
当你在Objective-C中声明一个属性时,你的getter和setter将被自动合成/生成。除非您想添加其他行为,例如除了设置/获取变量到getter/setter之外,你不需要自己实现它们。因此,您可以从WebServiceCall.m中删除webServiceUrlStr和setwebServiceUrlStr的定义: – mmccomb 2014-09-05 10:49:39
您不能在'Class'方法中使用'Instance'方法/变量。你需要创建Class的实例并调用你的方法。更好的选项是创建类“webServiceCall”的'SharedInstance'并用它来访问'Class'方法中的变量或方法。 – 2014-09-05 10:50:51