Ios 初始化属性并从类的所有方法访问它

Ios 初始化属性并从类的所有方法访问它,ios,objective-c,Ios,Objective C,这可能是非常明显的,但我似乎不知道如何让它工作-我是OOP新手,所以请温柔一点 我正在创建一个类,可以用来调用一些方法来更新数据源 理想情况下,我希望实例化该类并使用默认属性,然后调用将查找该属性并根据其值执行操作的方法,我还希望能够在实例化后更改该属性,以便为不同目的重用相同的方法 我正在努力的部分是物业的设置 我正在设定自己的价值观 DataController.h #import <Foundation/Foundation.h> @interface DataContr

这可能是非常明显的,但我似乎不知道如何让它工作-我是OOP新手,所以请温柔一点

我正在创建一个类,可以用来调用一些方法来更新数据源

理想情况下,我希望实例化该类并使用默认属性,然后调用将查找该属性并根据其值执行操作的方法,我还希望能够在实例化后更改该属性,以便为不同目的重用相同的方法

我正在努力的部分是物业的设置

我正在设定自己的价值观

DataController.h

#import <Foundation/Foundation.h>


@interface DataController : NSObject
@property (strong, nonatomic) NSString *defaultValue;
-(void)radFunction;
-(NSArray)awesomeArray:(NSString *)urlString;
@end

如果您能对此有所了解,我们将不胜感激:)

您应该选择一本好的iOS开发基础知识书籍并通读一遍,这对编写此类材料非常有帮助

H M 编辑:
请注意,不能从类方法内访问实例变量&
@properties
。类方法用
+
声明,而实例方法用
-
声明。您在
+(void)initialize中看到一个错误defaultValue
不可用

首先,这个问题与Xcode没有任何关系。您可以使用
emacs
编写代码,问题仍然是一样的。此外,您不能从类方法中访问实例变量和实例方法(因此也不能访问属性)。这根本没有道理。IVAR和实例方法与特定对象绑定/操作,即。E在类的实例上。类方法如何知道对哪个对象进行操作?以及在哪个对象中更改其值的ivar?我认为问题在于询问者不知道如何初始化NSObject子类的实例,以及如何访问该实例上的@poperties。“只是一个想法……”阿尔菲汉森说得没错。所以,在你的答案中,有一件事你可能想包括在粗体斜体所有大写字母中(好的,也许不是所有大写字母中),那就是他需要使用一个实例方法。谢谢你,我目前正在学习Aaron Hillegass的Objective-C编程:大书呆子牧场指南,它到目前为止非常好。然而,我在尝试一些事情时遇到了这个问题。非常感谢你的澄清,祝你好运,这是一本很棒的书
#import "DataController.h"
@implementation DataController
@synthesize defaultValue = _defaultValue;
+ (void)initialize {
//self.defaultValue causes error
NSString *defaultValue = @"somethingI want other methods to be able to access";
}

-(void)radFunction{
 NSLog(@" Default value %@", defaultValue);
}
@end
@interface DataController : NSObject

@property (strong, nonatomic) NSString * defaultValue;

- (id)initWithDefaultValue:(NSString *)defaultValue;
- (void)radFunction;
- (NSArray)awesomeArray:(NSString *)urlString;

@end
@implementation DataController

// No need to @synthesize anymore, this is now done for you by the compiler, 
// instance var of the @property will be accessible via _defaultValue

- (id)initWithDefaultValue:(NSString *)defaultValue
{
    self = [super init];
    if (self) {
         self.defaultValue = defaultValue;
    }
    return self;
}

- (void)radFunction
{
    NSLog(@" Default value %@", self.defaultValue);
}
@end