Dav*_*nte 57 xcode warnings objective-c
当我打电话给当地的日常工作时,我收到了这个警告.
我的代码是这样的:
-(void)nextLetter {
// NSLog(@"%s", __FUNCTION__);
currentLetter ++;
if(currentLetter > (letters.count - 1))
{
currentLetter = 0;
}
self.fetchLetter;
}
Run Code Online (Sandbox Code Playgroud)
我在self.fetchLetter语句中收到警告.
那个例程看起来像这样:
- (void)fetchLetter {
// NSLog(@"%s", __FUNCTION__);
NSString *wantedLetter = [[letters objectAtIndex: currentLetter] objectForKey: @"langLetter"];
NSString *wantedUpperCase = [[letters objectAtIndex: currentLetter] objectForKey: @"upperCase"];
.....
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢修复警告信息,有没有更好的方法来写这个?
谢谢!
Tom*_*ing 120
点符号(ie self.fetchLetter)用于属性,不用于任意方法.将self.fetchLetter被解释为"让'自我’,对'fetchLetter’属性",这是不是你想要的东西.
只需使用[self fetchLetter].
Dar*_*ust 12
在较新的Xcode版本中,甚至[object method];可能触发警告.但有时我们确实需要调用属性并丢弃结果,例如在处理视图控制器时我们需要确保视图实际已加载.
我们这样做:
// Ensure view is loaded and all outlets are connected.
[self view];
Run Code Online (Sandbox Code Playgroud)
现在这也会触发"未使用属性访问结果 - 不应将getter用于副作用"警告.解决方案是让编译器通过将结果类型转换为void来有意识地完成它:
(void)[self view];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23869 次 |
| 最近记录: |