Cocoa touch NSObject调用self时出现XCode错误
我有一个从NSObject继承的类WebServices。我使用的是xcode4.2,并且ARC已打开。 当我创建该类时,NSObject lie viewDidLoad或init中没有其他方法 问题是,当我尝试调用self.something或[self-somethod]Xcode时,我的代码会标记为红色,并抱怨: 将Objective-C指针类型“Class”隐式转换为C指针类型“struct obj_Class*”需要桥接转换 请帮忙。为什么cocoa不像java,在java中调用“this”并获取您所在的对象Cocoa touch NSObject调用self时出现XCode错误,cocoa-touch,ios6,xcode4.2,implicit-conversion,nsobject,Cocoa Touch,Ios6,Xcode4.2,Implicit Conversion,Nsobject,我有一个从NSObject继承的类WebServices。我使用的是xcode4.2,并且ARC已打开。 当我创建该类时,NSObject lie viewDidLoad或init中没有其他方法 问题是,当我尝试调用self.something或[self-somethod]Xcode时,我的代码会标记为红色,并抱怨: 将Objective-C指针类型“Class”隐式转换为C指针类型“struct obj_Class*”需要桥接转换 请帮忙。为什么cocoa不像java,在java中调用“th
// WebService.h file
@interface WebService : NSObject
@property (weak, nonatomic) NSString * myString;
+(void) setAndPrintMyString:(NSString*) someString;
@end
//WebService.m file
#import "WebService.h"
@implementation WebService
@synthesize myString=_myString;
+(void) printMyString:(NSString*) someString{
[self setMyString:someString]; //XCode does not allow
NSLog(@"myString is set to %@",self.myString); //XCode dose not allow
}
@end
viewDidLoad
方法不适合NSObject
子类。这是一种用于UI
的方法,它将出现在UIViewController
子类中
现在,我们来谈谈self.something
或[self-somethod]
,它可以很好地与NSObject
子类配合使用。您需要向我们展示您面临问题的代码
仅供您参考(我认为您应该在完成此步骤后开始为iOS开发):
+
声明一个方法意味着它是一个类方法。在类中,方法self
引用类本身,在您的情况下,它将是[WebService类]
。如果您声明和实例方法(使用-
),那么在方法内部self
将引用您想要的实例
要设置实例变量,您需要一个实例
WebService *webService = [[WebService alloc] init];
webService.myString = @"some string";
现在要使您的方法工作,您需要使用-
来声明它,而不是+
,这使它成为一个实例方法
- (void)printMyString:(NSString *)someString
{
[self setMyString:someString];
NSLog(@"myString is set to %@",self.myString);
}
现在
结果实例变量
myString
被设置为boom
,控制台注销`myString'被设置为boom“您能显示您正在使用的代码吗trying@Paul.s我从工作中添加了一些代码,因此如果代码有拼写错误,我很抱歉,我在发布之前没有运行它。您发布的代码对我来说很好-要么您需要发布实际代码,以便我们可以看到真正的问题,要么Xcode正在播放up@Paul.s更新了我的代码。。。我有一个+(虚空)而不是-(虚空),我现在认为这对我来说是有意义的。
[webService printMyString:@"boom"];