是NSString * __unused aString和NSString __unused * aString等价的,当他们的变量声明?
是- (void)aMethod:(NSString * __unused)aString和- (void)aMethod:(NSString __unused *)aString等价的,当它们是Objective-C方法参数声明时?
如果答案是"是",我应该选择哪种形式正确?
在启用/禁用GCC_WARN_UNUSED_PARAMETER和GCC_WARN_UNUSED_VARIABLE指令时,两种情况下的两种形式似乎都相同.
我没有找到任何澄清这一点的信息.
相关主题:
如果我有一个类Foo声明如下:
@interface Foo : NSObject
@property (copy, nonatomic) void (^aBlock)(void);
- (void)bar;
@end
@implementation Foo
- (void)bar {}
@end
Run Code Online (Sandbox Code Playgroud)
我在Foo实例中存储了一个捕获此实例的块:
Foo *foo = [Foo new];
__weak Foo *weakFoo = foo;
foo.aBlock = ^{
__strong Foo *strongFoo = weakFoo; <--- does this __strong Foo * really makes sense?
[strongFoo bar];
}
... then somewhere later use foo.aBlock()
Run Code Online (Sandbox Code Playgroud)
或者我只是这样做:
Foo *foo = [Foo new];
__weak Foo *weakFoo = foo;
foo.aBlock = ^{
[weakFoo bar];
}
... then somewhere later use foo.aBlock()
Run Code Online (Sandbox Code Playgroud)
添加是否 …
这是代码:
extern crate tempdir;
use std::env;
use tempdir::*;
#[test]
fn it_installs_component() {
let current_dir = env::current_dir().unwrap();
let home_dir = env::home_dir().unwrap();
let tmp_dir = env::temp_dir();
println!("The current directory is: {}", current_dir.display());
println!("The home directory is: {}", home_dir.display());
println!("The temporary directory is: {}", tmp_dir.display());
let stage_dir = TempDir::new_in(tmp_dir.as_path(), "Components-Test");
let components_dir = TempDir::new_in(stage_dir.unwrap().path(), "Components");
// This is "offending line"
// let components_make_dir = TempDir::new_in(stage_dir.unwrap().path(), "Components.make");
println!("---- {:?}", components_dir.unwrap().path());
//println!("---- {:?}", components_make_dir.unwrap().path());
}
Run Code Online (Sandbox Code Playgroud)
如果违规行被注释掉,则代码编译得很好.如果我取消注释它,我开始收到错误:
error[E0382]: use of moved value: `stage_dir`
--> src/main.rs:21:51
| …Run Code Online (Sandbox Code Playgroud) 我有这样一个数组:
NSArray *needSortedArray = @[@"Alex", @"Rachel", @"Mohamad"];
Run Code Online (Sandbox Code Playgroud)
和一个像这样的索引数组:
NSArray *indexArray = @[@1, @0, @2];
Run Code Online (Sandbox Code Playgroud)
所以我想要的输出看起来像这样:
needSortedArray = @[@"Rachel", @"Alex", @"Mohamad"];
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?可能吗?
#define SDNSPredicate(key,value) \
[NSPredicate predicateWithFormat:@"#key == %@",value];
Run Code Online (Sandbox Code Playgroud)
当我使用时SDNSPredicate(@"hCName",@"ccc"),我期待hCName == "ccc"但它变成了key == "ccc"
怎么做对了?