这是我的代码的一部分
OutputStream os;
if (isWin){
os = new FileOutputStream(folder + "\" + destinationFile);
}
else{
os = new FileOutputStream(folder + "/" + destinationFile);
}
Run Code Online (Sandbox Code Playgroud)
我在反斜杠行中得到了"字符串文字没有被双引号错误正确关闭".如果我删除反斜杠或将其更改为正斜杠,则错误将消失.
我怎样才能解决这个问题?谢谢.
我正在尝试从URL获取并打印HTML。这是我的操作方法(使用Swift 2):
let testUrl = NSURL(string: "https://www.google.com")
var html = NSString()
do {
html = try NSString(contentsOfURL: testUrl!, encoding: NSUTF8StringEncoding)
} catch{print(error)}
print(html)
Run Code Online (Sandbox Code Playgroud)
并在控制台中打印以下错误:
错误域= NSCocoaErrorDomain代码= 261“无法使用文本编码Unicode(UTF-8)打开文件。” UserInfo = {NSURL = https://www.google.com,NSStringEncoding = 4}
任何的想法?
StackOverflow上已经存在一些类似的问题.我确实检查了它们,并且在大多数情况下它返回nil,因为它NSMutableArray尚未初始化.但在我的情况下,我做了初始化.
这是我的代码的一部分:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.storedTimeZones = [[NSMutableArray alloc] init];
NSData *storedData = [[NSUserDefaults standardUserDefaults] dataForKey:@"timeZones"];
if (storedData != nil ) {
self.storedTimeZones = [NSKeyedUnarchiver unarchiveObjectWithData:storedData];
}
NSString *str = [self.smallRegionArray[indexPath.row] stringByReplacingOccurrencesOfString:@"_" withString:@" "];
[self.storedTimeZones addObject: str];
NSLog(str); //the string was printed successfully.
NSLog(@"%lu", (unsigned long)self.storedTimeZones.count); //'0' was printed
}
Run Code Online (Sandbox Code Playgroud)
更新
@Caleb是对的,[NSKeyedUnarchiver unarchiveObjectWithData:storedData返回零.我解决了这个问题:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.storedTimeZones = [[NSMutableArray alloc] init];
NSData *storedData = [[NSUserDefaults standardUserDefaults] dataForKey:@"timeZones"];
NSMutableArray *ary = …Run Code Online (Sandbox Code Playgroud) 所以我有一个自定义类,并为其定义了一个委托方法。这是一个简化的示例:
protocol MyDelegate {
func myDelegateMethod()
}
class Myclass (){
//other stuff
func myDelegateMethod(){
//some operation
}
}
Run Code Online (Sandbox Code Playgroud)
我想从另一个类重写这个方法。我用了
override func myDelegateMethod(){
}
Run Code Online (Sandbox Code Playgroud)
但我收到了这个错误
方法不会覆盖其超类中的任何方法
我明白这是说超类没有实现这个方法,所以我不需要使用关键字override。但就我而言,我确实myDelegateMethod在超级类中MyClass,并且我确实想覆盖它。
那么我怎样才能使这个函数可重写呢?
编辑:
如果你想查看实际的代码,这里是要点