Загрузка HTML представляет в виде строки в NSString или Быструю Строковую переменную в iOS

Это действительно зависит от Вашей ситуации.

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

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

, Если Вы решаете использовать указатели на объекты, смотрите на Библиотека Контейнера Указателя Повышения . Эта библиотека повышения обертывает все контейнеры STL для использования с динамично выделенными объектами.

Каждый контейнер указателя (например, ptr_vector) берет владение объекта, когда это добавляется к контейнеру и управляет временем жизни тех объектов для Вас. Вы также доступ все элементы в ptr_ контейнере ссылкой. Это позволяет Вам сделать вещи как

class BigExpensive { ... }

// create a pointer vector
ptr_vector bigVector;
bigVector.push_back( new BigExpensive( "Lexus", 57700 ) );
bigVector.push_back( new BigExpensive( "House", 15000000 );

// get a reference to the first element
MyClass& expensiveItem = bigList[0];
expensiveItem.sell();

, Эти классы обертывают контейнеры STL и работают со всеми алгоритмами STL, которые действительно удобны.

существуют также средства для передачи владения указателя в контейнере вызывающей стороне (через функцию выпуска в большинстве контейнеров).

11
задан Leo Dabus 6 November 2017 в 05:03
поделиться

1 ответ

Swift 3.0

guard let url = URL(string: "http://www.example.com") else {
    return
}

do {
    let html = try String(contentsOf: url)
}
catch {
    //handle `error` here
}

Swift 2.3

guard let url = NSURL(string: "http://www.example.com") else {
    return
}

do {
    let html = try String(contentsOfURL: url)
}
catch {
    //handle `error` here
}

Objective-C

NSString *url = @"http://www.example.com";
NSURL *urlRequest = [NSURL URLWithString:url];
NSError *err = nil;

NSString *html = [NSString stringWithContentsOfURL:urlRequest encoding:NSUTF8StringEncoding error:&err];

if(err)
{
    //Handle 
}
23
ответ дан 3 December 2019 в 04:52
поделиться