相关疑难解决方法(0)

iOS头文件中的属性和变量之间的区别?

可能重复:
Objective-c中的"实例变量"和"属性"之间是否存在差异?
self.ivar和ivar之间的区别?

在@interface行之后立即在括号中声明变量和在下面定义属性之间有什么区别?

例如...

@interface GCTurnBasedMatchHelper : NSObject {
BOOL gameCenterAvailable;
BOOL userAuthenticated;
}

@property (assign, readonly) BOOL gameCenterAvailable;
Run Code Online (Sandbox Code Playgroud)

objective-c ios

23
推荐指数
2
解决办法
2万
查看次数

Objective-C中_variable和self.variable有什么区别?

我是Objective C和iOS的新手,目前正在尝试使用iOS 6 SDK学习应用程序开发.我真的无法理解的一个概念是在.m文件中访问时"_variable"和"self.variable"之间的区别.它们是一样的吗?还是不同?

以下是一个简单的示例

MyClass.h

#import <Foundation/Foundation.h>

@interface MyClass : NSObject
@property (strong, nonatomic) NSString *myName;
@end
Run Code Online (Sandbox Code Playgroud)

MyClass.m

#import "MyClass.h"

@interface MyClass ()
@property (nonatomic, strong) NSString *anotherName; 
@end

@implementation MyClass
- (void) myFunction {
    _myName = @"Ares";
    self.myName = @"Ares";

    _anotherName = @"Michael";
    self.anotherName = @"Michael";
}
@end
Run Code Online (Sandbox Code Playgroud)

那么上面的实现设置变量有什么不同吗?变量"myName"是Public,而"anotherName"是Private.

非常感谢任何投入.谢谢!

variables objective-c ios6

6
推荐指数
1
解决办法
7176
查看次数

自变量和变量差异

是什么区别self.myVariable = obj;myVariable = obj;,当我使用@propery/ @synthesize创建`MYVARIABLE?

cocoa cocoa-touch objective-c declared-property

5
推荐指数
4
解决办法
2601
查看次数

如何为ivar编写我自己的setter,即:self.ivar = ...?

这是一个后续问题:self.ivar和ivar之间的区别?:

self.name = @"hello";
Run Code Online (Sandbox Code Playgroud)

我想知道在神奇的 setter方法中做了什么.所以问题是:有人可以发布setter方法的源代码吗?;-) 谢谢!

objective-c

3
推荐指数
1
解决办法
2866
查看次数

有关在Objective-C中访问实例属性的最佳实践?

可能重复:
self.ivar和ivar之间的区别?

我想知道,如果我在Obj-C中将实例变量定义为属性,例如,

@property (copy) NSString *str; 
Run Code Online (Sandbox Code Playgroud)

@synthesize str = _str; 
Run Code Online (Sandbox Code Playgroud)

我应该在实例方法中访问它吗?

_str = @"ABC";
Run Code Online (Sandbox Code Playgroud)

或者我应该使用访问者,即

[self setStr:@"ABC"];
Run Code Online (Sandbox Code Playgroud)

有关于此的一般指导原则吗?

非常感谢!

iphone cocoa cocoa-touch objective-c ios

1
推荐指数
1
解决办法
324
查看次数

Objective-C中的属性和访问器

以下代码是否调用访问器"set"函数或myMember直接修改指针?

aClass.h

@interface MyClass : NSObject {
    NSArray *myMember;
}

@property (nonatomic, retain) NSArray *myMember;
Run Code Online (Sandbox Code Playgroud)

aClass.c

@implementation GameplayScene

@synthesize myMember;

- (id) init {
    if ( (self = [super init]) )
    {
        myMember = [NSArray array];
    }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我想知道是否setMyMember正在调用该方法,或者是否myMember正在直接修改指针.

同样,是否myMember = [NSArray array]相同self.myMember = [NSArray array]

class objective-c accessor

0
推荐指数
1
解决办法
627
查看次数

我是否在实现中使用_property或self.property

可能重复:
self.ivar和ivar之间的区别?

假设我有以下课程

@interface
@property ( nonatomic, retain ) MyObject* property;
@end

@implementation
@synthesize property = _property;

-(id) init{
   if ((self = [super init])) {
        _property = [MyObject new];
        self.property = [MyObject new];
        NSLog(@"%@", _property.description);
        NSLog(@"%@", self.property.description);
    }
    return self;
}
@end
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?使用访问器(合成:self.property)或直接使用ivar?只是当我尝试在其他文件中使用它时,我有时会觉得使用访问器会导致错误.

objective-c

0
推荐指数
1
解决办法
949
查看次数

_myObject vs self.myObject

当我在另一个晚上处理游戏时,我意识到我可以通过使用_myObject而不是减少方法调用的数量来提高我的"tick"代码的性能self.myObject.

假设这myObject是一个属性,由编译器隐式合成,并且已经有一个值,那么底层的那个与顶层的那个做同样的事情吗?

// Non-ARC
self.myObject = [self someValue];
_myObject = [self someValue];
Run Code Online (Sandbox Code Playgroud)

iphone macos objective-c ios

0
推荐指数
1
解决办法
169
查看次数

self.myivar和self-> myivar在objective-c之间的区别

嗨我知道当使用箭头符号(->)访问C中的成员时,* .每次需要访问对象时都需要同时使用star和dot().

但在Objective-C中,self.myivar和之间有什么区别self->myivar?我注意到它们都适用于我的情况,我将myivar声称为属性.

objective-c

0
推荐指数
1
解决办法
193
查看次数