Смутно о путях для изображений при использовании Xam.Plugin.Media и кросс-платформенной [duplicate]

Я использую подсказку (nolock), особенно в базах данных SQLServer 2000 с высокой активностью. Я не уверен, что это необходимо в SQL Server 2005. Недавно я добавил этот намек на SQL Server 2000 по просьбе клиента DBA, потому что он замечал множество блокировок записей SPID.

Все, что я могу сказать, заключается в том, что использование подсказки НЕ повредило нам и, похоже, решило проблему блокировки. DBA у этого конкретного клиента в основном настаивал на том, что мы используем подсказку.

Кстати, базы данных, с которыми я имею дело, являются справочными системами корпоративных медицинских заявок, поэтому мы говорим о миллионах записей и 20 + таблицы во многих объединениях. Обычно я добавляю подсказку WITH (nolock) для каждой таблицы в объединении (если только это не производная таблица, и в этом случае вы не можете использовать этот конкретный намек)

66
задан Joseph Toronto 10 August 2014 в 22:55
поделиться

5 ответов

Оказывается, Xcode 6 действительно меняет UUID приложения каждый раз, и я не прав для хранения абсолютных путей.

48
ответ дан Joseph Toronto 26 August 2018 в 22:19
поделиться

ИСПОЛЬЗОВАТЬ SIMPHOLDERS

Я использовал это приложение на Xcode 5, открыв папку «Документы» для текущего приложения в симуляторе в Finder.

http: // simpholders.com/

еще не готов к Xcode 6 (начиная с sep 24 2014), но сохраняет все эти проблемы.

В Xcode 6 / iOS8 Теперь пакет отдельно от данных. / GUID приложения регенерируется между прогонами в Xcode (не уверен, почему)

  DOCUMENTS DIR:/Users/gbxc/Library/Developer/CoreSimulator/Devices/AC79941F-EC56-495E-A077-773EEE882732/data/Containers/Data/Application/C220D351-0BE7-46BA-B35E-D16646C61A3F/Documents
mainBundlePath_:/Users/gbxc/Library/Developer/CoreSimulator/Devices/AC79941F-EC56-495E-A077-773EEE882732/data/Containers/Bundle/Application/12200D1D-9B67-408B-BCF7-38206CBE0940/myappname.app/BLANK_BLOG_SCALED.jpg

1. НАЙТИ ПАПКУ УСТРОЙСТВ В СИМУЛЯТОРЕ

/Users/gbxc/Library/Developer/CoreSimulator/Devices/

откройте каждый /device.plist, чтобы узнать, какой GUID - какое устройство в XCode - я думаю, что это статический

3. НАЙДИТЕ УСТРОЙСТВО, на которой вы работаете на iPad 2 - я думаю, что это статический

/Devices/AC79941F-EC56-495E-A077-773EEE882732

4. Найти папку с вашим приложением / документами

/AC79941F-EC56-495E-A077-773EEE882732/data/Containers/Data/Application/C220D351-0BE7-46BA-B35E-D16646C61A3F/Documents

ОЧЕРИТЬ GUID C220D351-0BE7-46BA-B35E-D16646C61A3F регенерируется каждый раз, когда приложение запускается в XCode 6

 NSArray *paths_ = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        if(paths_){
            _docsDir = [paths_ firstObject];
            DebugLog(@"DOCUMENTS DIR:%@",_docsDir);         
        }else{
            ErrorLog(@"paths_ is nil - cant get Documents directory");
        }

MAIN BUNDLE path

NSString *mainBundlePath_ = [[NSBundle mainBundle] pathForResource:@"someimageinyourbundle" ofType:@"jpg"];
/AC79941F-EC56-495E-A077-773EEE882732/data/Containers/Bundle/Application/12200D1D-9B67-408B-BCF7-38206CBE0940/clarksonsiq.app/BLANK_BLOG_SCALED.jpg

НИКОГДА НЕ СКАЧАТЬ ПУТЬ в / Документы между запусками будут меняться.

Я сериализовал его на plist и не мог понять, почему они продолжали исчезать

Указанный GUID / Документы постоянно меняются между прогонами, но если у вас есть / Документы, открытые в Finder, папка остается открытой.

https://devforums.apple.com/thread/235911?tstart=0

https://devforums.apple.com/thread/238754?tstart=0
8
ответ дан brian.clear 26 August 2018 в 22:19
поделиться

Свободное решение

Использование библиотеки с открытым исходным кодом OpenSim . OpenSim - альтернатива с открытым исходным кодом для SimPholders, написанная в Swift.

Платное решение

Используйте приложение SimPholder, чтобы узнать текущее местоположение приложения.

enter image description here [/g7]

Для xcode 6.0>

Загрузить SimPholder 2.0 alpha 2


Для xcode 5.1 & lt;

Загрузить SimPholders 1.5

7
ответ дан Paresh Navadiya 26 August 2018 в 22:19
поделиться

Вам нужно сохранить только путь внутри DocumentDirectory (имя каталога / файла) и добавить его в DocumentDirectory каждый раз при загрузке файла ...

-(void)saveImage:(UIImage *)image{
NSData *pngData = UIImagePNGRepresentation(image);
NSString *pathInDocumentDirectory = [APP_DocumentDirectory stringByAppendingPathComponent:PROFILE_IMAGE_NAME];
NSString *filePath = [self documentsPathForFileName:pathInDocumentDirectory];
//Save pic file path - DirName/Filename.png
[XYZPreferencesHelper setUserImageFilePath:pathInDocumentDirectory];
 //Write the file
[[NSFileManager defaultManager] createFileAtPath:filePath contents:pngData attributes:nil];

}



-(void)loadSavedUserPicture{
//Load saved DirName/Filename.png
NSString *pathInDocumentDirectory = [XYZPreferencesHelper getUserImageFilePath];

if (pathInDocumentDirectory != nil){
    //Full path with new app Document Directory
    NSString *filePath = [self documentsPathForFileName:pathInDocumentDirectory];
    if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]){
        NSData *pngData = [NSData dataWithContentsOfFile:filePath];
        UIImage *image = [UIImage imageWithData:pngData];
        if (image != nil){
            userPicImageView.image = image;
        }

    }

 }
}



- (NSString *)documentsPathForFileName:(NSString *)name
{
NSString *documentsPath = [self createRestcallDirectoryIfNotExist];
return [documentsPath stringByAppendingPathComponent:name];
}



-(NSString *)createRestcallDirectoryIfNotExist{
NSString *path;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
path = [documentsPath stringByAppendingPathComponent:APP_DocumentDirectory];
NSError *error;
if (![[NSFileManager defaultManager] fileExistsAtPath:path])    //Does directory already exist?
{
    if (![[NSFileManager defaultManager] createDirectoryAtPath:path
                                   withIntermediateDirectories:NO
                                                    attributes:nil
                                                         error:&error])
    {
        NSLog(@"Create directory error: %@", error);
    }
}
return documentsPath;
}
1
ответ дан sfresko 26 August 2018 в 22:19
поделиться

Я могу подтвердить, что это Xcode 6, связанный не с iOS 8.

У меня есть две машины разработки. На одном из них у меня есть Xcode 5. Я работал все время на этой машине, и мой URL был в порядке (фотоприложение, фотографии видны).

Вчера я проверил в форме git мой источник на машине с Xcode 6. Я заметил, что мои фотографии больше не видны, только фотографии, созданные во время этого сеанса приложения.

После небольшой отладки я понял, что файл: /// var / mobile / Applications / B6A6BAEF-C90C-4A2A-93DB-E6700B88971F / Документы / меняются при каждом запуске приложения.

Все это время я работаю с устройством iOS 7.

Я собираюсь проверить один раз больше на машине с Xcode 5, чтобы подтвердить, когда я получу ее.

1
ответ дан vale4674 26 August 2018 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: