小编Cha*_*son的帖子

什么是强属性属性

我正在为开发人员使用Xcode beta,并注意到一些微妙的差异.其中包括声明属性的新属性.

@property(strong)IBOutlet NSArrayController *arrayControl;
Run Code Online (Sandbox Code Playgroud)

我的问题是:强属性是什么意思?它会取代一些旧的,还是全新的?我搜索了谷歌和开发人员的文档,但没有找到任何东西.直到我知道它是什么,我犹豫是否使用它.

提前致谢

iphone macos cocoa objective-c ios

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

通过performSelectorOnMainThread传递基元

好吧,所以说我有第二个线程正在运行,但它想在主线程上操作一些东西,比如一个UI项目.

-(void)backgroundThread
{
    [myButton performSelectorOnMainThread:@selector(setEnabled:) withObject:(BOOL)YES waitUntilDone:YES];
     // right here, how could i pass this BOOL to the function
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用NSNumber's numberWithBOOL,但NSButton不接受它.

macos objective-c nsthread

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

Objective-C中的复合语句

我正在浏览一些示例Objective-C代码,并发现了一个有趣的部分,它使用了我之前从未见过的语法.下面的代码不是来自样本,它只是一个例子.

MyObject *obj = ({
    MyObject *obj = [MyObject new];
    [obj performSomeSetup];
    obj.someProperty = someValue;
    obj;
});
Run Code Online (Sandbox Code Playgroud)

在做了一些挖掘后,我发现这被称为复合语句,并且是C的一个特性.使用这种语法似乎是一种将对象创建封装在方法中的简洁方法,并且我已经开始使用这种方法类构造函数的语法如下,以及上面的对象创建.

+ (instancetype)objectWithValue:(id)someValue {
    return ({
        MyObject *obj = [MyObject new];
        obj.somePrivateProperty = someValue;
        obj;
    });
}
Run Code Online (Sandbox Code Playgroud)

我非常喜欢这种语法,但我不清楚这是否滥用了一种不打算以这种方式使用的功能.所以我想我问我有什么理由不应该使用这种类型的语法吗?

macos objective-c ios

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

标签 统计

macos ×3

objective-c ×3

ios ×2

cocoa ×1

iphone ×1

nsthread ×1