Поскольку это интеграция, которую вы делаете, я бы рекомендовал использовать адаптер ADO.NET для SharePoint и подключиться через службу WCF (soap / wsdl). Это сэкономит вам много времени, и если все сделано правильно, ваша интеграция не будет проприетарной.
Проверьте этот готовый сервис wcf, http://www.bendsoft.com/downloads/camelot-wcf-service/, инструкции по установке здесь http://blog.bendsoft.com/category/integrations/wcf-services/.
Это открытый исходный код, но поставляется с поддержкой формата Camelot XML, который связывает схему с содержимым, если вы запрашиваете данные, проверьте схему примера здесь http://www.bendsoft.com/downloads/sharepoint-web-parts/xml-pusher/.
Чтобы вставить данные в SharePoint с помощью службы WCF, вы можете просто сделать что-то вроде этого
$SharePointNonQuery = new SharePointNonQuery(array(
'sql' => "INSERT INTO contactform (title,email,company,message) VALUES ('John Doe','john.doe@example.com','Johns Company','A test message!')",
'method' => 'ExecuteNonQuery',
'connString' => 'sharepoint_connection',
'sharedKey' => constant("WSDL_SHARED_KEY")
));
Пример явно сделан на PHP (http://blog.bendsoft.com/2011/04/camelot-php-tools-1-1-for-sharepoint-released/), но одинаково легко создать класс в Objective-C и отправить свою команду в виде SQL через SOAP и выполнить команду SQL в службе WCF.
Надеюсь, это поможет!
----------- Изменения под этой строкой -----------
Запрос предлагаемой службы WCF из Objective-C приведет к чему-то вроде этого
WSMethodInvocationRef soapReq = createSOAPRequest(url, method, namespace, params, paramOrder, reqHeaders);
URL-адрес - это местоположение службы wcf, т.е. http://yourserver.com/wcf/camelot.wcf
Метод - это метод В сервисе wcf, который вы хотите использовать. У службы Camelot WCF есть несколько методов по умолчанию. В этом случае подходящим будет метод ExecuteNonQuery, который принимает следующие аргументы; sql, connString и sharedKey.
bool ExecuteNonQuery(string sql, string connString, string sharedKey);
Params - это аргументы, перечисленные выше, они должны быть отправлены в виде ассоциативного массива (я полагаю, NSDictionary).
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
@"INSERT INTO YourList (title,email,company,message) VALUES ('John Doe','john.doe@example.com','Johns Company','A test message!')", @"sql",
@"connString", @"SharePointConnectionString",
@"sharedKey", @"YourPreferredKey",
nil];
ExecuteNonQuery - это метод bool, который возвращает true или false методу soapReq в приложении Objective-C.