iPhone, NSURLConnection> didReceiveData: (NSData *) данные, как проверить данные результата - PullRequest
0 голосов
/ 23 августа 2011

Я использую соединение URL (http).

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

        NSString *filePath; /* .../link.plist */
        [data writeToFile:filePath atomically:YES];
    }

После подключения я проверяю файл результатов (link.plist)

    - (void)checkLinkResult {

        NSString *filePath; //link.plist
        NSString *result = [[NSString alloc] initWithContentsOfFile:filePath];
    }

Работает нормально.

Но я хочу проверить строку результата напрямую, без создания файла.

"NSData -> file -> NSString" (сейчас) ====> "NSData -> NSString" (я хочу)

Помогите мне, плз.

Ответы [ 3 ]

1 голос
/ 23 августа 2011

Это зависит от ваших данных.

Если ваши данные Image

UIIMage * image = [[UIImage alloc] initWithData:Receivedata

Если данные строковые

NSMutableString *string = [[NSMutableString alloc] initwithData:Receivedata encoding:nil]
0 голосов
/ 23 августа 2011

Выполните следующие действия:

  1. Объявите область файла NSMutableData instance.
  2. в вашем соединении: DidRecieveData: обратный вызов добавляет «данные» к ранее созданному экземпляру NSMutableData.
  3. В connectionDidFinishLoading: обратный вызов используйте initWithData: encoding: of NSString и передайте экземпляр NSMutableData и NSUTF8StringEncoding в качестве параметров.
0 голосов
/ 23 августа 2011

В didReceiveData пишите в объект NSMutableData, затем в checkLinkResult создайте строку из NSMUtableData, используя соответствующую кодировку.

Это на самом деле, как это делается в учебнике Apple по NSConnection.

...