-2

这可能是非常明显的事情,但我似乎无法理解如何让它工作 - 我对 OOP 相当陌生,所以请温柔

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

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

正在努力解决的部分是属性的设置

我正在设定我的价值观

DataController.h

#import <Foundation/Foundation.h>


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

执行

#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

任何人都可以对此有所了解,我们将不胜感激:)

4

1 回答 1

3

你应该拿起一本好的 iOS 开发基础书籍通读一遍,这样的材料会非常有帮助。

。H
@interface DataController : NSObject

@property (strong, nonatomic) NSString * defaultValue;

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

@end

.m

@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

编辑:

请注意,实例变量 &@properties不能从类方法中访问。类方法用 a 声明,+而实例方法用 a 声明-。您会看到一个错误,+ (void)initialize;因为它是一个类方法,因此defaultValue不可用。

于 2013-07-23T19:48:30.297 回答