相关疑难解决方法(0)

self.ivar和ivar之间的区别?

aclass.h

@interface aClass : NSObject {
    NSString *name;
}

@property (nonatomic, retain) IBOutlet NSString *name;

@end
Run Code Online (Sandbox Code Playgroud)
aclass.m 

@implementation aClass

@synthesize name;

- (void)dealloc {
    [name release];
    [super dealloc];    
}

- (void)test1 {
    name = @"hello";
}

- (void)test2 {
    self.name = @"hello";
}
Run Code Online (Sandbox Code Playgroud)

以上面为例.可能有人请解释之间的差异name = @"hello"self.name = @"hello"?谢谢!

编辑:后续问题:如何为ivar编写我自己的setter,即:self.ivar = ...?

iphone objective-c ios

39
推荐指数
3
解决办法
6662
查看次数

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
查看次数

有关在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
查看次数

_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
查看次数

标签 统计

objective-c ×5

ios ×3

iphone ×3

cocoa ×1

cocoa-touch ×1

ios6 ×1

macos ×1

variables ×1