0

为了遵循数据存储指南,我必须使用以下方法添加一个标志,表示不将其备份到 iCloud。但是,这里的参数是针对 NSURL 的。我需要像这样从一行中传递一个 NSString

return [[self offlineQueuePath] stringByAppendingPathComponent:@"SHKOfflineQueue.plist"];

这是接受 URL 的方法。

    - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
    if (&NSURLIsExcludedFromBackupKey == nil) { // iOS <= 5.0.1
        const char* filePath = [[URL path] fileSystemRepresentation];

        const char* attrName = "com.apple.MobileBackup";
        u_int8_t attrValue = 1;

        int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
        return result == 0;
    } else { // iOS >= 5.1
        NSError *error = nil;
        [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error];
        return error == nil;
    }
}

无论如何,在将 NSString 作为参数的同时,我将如何修改上述方法以实现相同的效果?

谢谢!

4

2 回答 2

2

您不需要修改方法。将您的字符串转换为 URL。

NSURL *url = [NSURL URLWithString:@"your string"];
于 2012-05-14T21:11:23.673 回答
0

使用此方法

 NSURL *pathURL113= [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@",Your string]];

这是完美的代码。

于 2013-06-10T10:08:02.727 回答