我在Xcode 6.4中打开了两个项目.两者都使用以下声明:
- (void)startService
{
__weak typeof(self) weakSelf = self;
[self.messageOperationQueue addOperationWithBlock:^{
NSDictionary *storedMessages = [mySettings get:kStorageName withDefault:@{} storageType:kMySettingsStorageTypeDiskMapped];
[weakSelf.messages addEntriesFromDictionary:storedMessages];
}];
}
Run Code Online (Sandbox Code Playgroud)
但是,在一个项目中没有错误,在另一个项目中我收到编译器错误:
Expected ';' at end of declaration
Run Code Online (Sandbox Code Playgroud)
它希望我在__weak typeof(self)之后放置一个分号.我怀疑我只是在做一些非常愚蠢的事情,但我很难搞清楚什么.另外,我知道我可以代替typeof(self)使用myClass *.
我有类似的错误.@Leo Natan是对的,如果你愿意,你可以将C语言改为GNU,如下所示:
在Project Navigator中,转到Project - > Target - > Build Settings
寻找C语言方言并将其从c11或c99更改为GNU99,它将解决问题.现在你可以使用typeof()
我希望它有帮助:)
| 归档时间: |
|
| 查看次数: |
2991 次 |
| 最近记录: |