Я все время использую собственную полезную функцию exst () , которая автоматически объявляет переменные.
Ваш код будет -
$greeting = "Hello, ".exst($user_name, 'Visitor')." from ".exst($user_location);
/**
* Function exst() - Checks if the variable has been set
* (copy/paste it in any place of your code)
*
* If the variable is set and not empty returns the variable (no transformation)
* If the variable is not set or empty, returns the $default value
*
* @param mixed $var
* @param mixed $default
*
* @return mixed
*/
function exst( & $var, $default = "")
{
$t = "";
if ( !isset($var) || !$var ) {
if (isset($default) && $default != "") $t = $default;
}
else {
$t = $var;
}
if (is_string($t)) $t = trim($t);
return $t;
}
Взгляните на Рестлет . В руководстве показано, как начать работу.
Restlet позволяет использовать ряд форматов представления, включая XML и JSON .
Вам необходимо выполнить загрузку в самом синглтоне, что здесь происходит: вы создаете сингл, вы назначаете ему lval, затем вы создаете новый объект и переназначаете lval на этот новый объект БЕЗ изменения синглтона. Другими словами:
//Set venue to point to singleton
Venue *venue = [Venue sharedVenue];
//Set venue2 to point to singleton
Venue *venue2 = [Venue sharedVenue];
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
//Set venue to unarchived object (does not change the singleton or venue2)
venue = [unarchiver decodeObjectForKey:@"Venue"];
[unarchiver finishDecoding];
Что вы хотите сделать, так это разобраться с этим в sharedVenue. Есть несколько способов, которыми люди делают синглтоны, поэтому я не могу быть уверен, что вы делаете, но давайте предположим, что sharedVenue в настоящее время выглядит примерно так:
static Venue *gSharedVenue = nil;
- (Venue *) sharedVenue {
if (!gSharedVenue) {
gSharedVenue = [[Venue alloc] init];
}
return gSharedVenue;
}
Предполагая, что это тот случай, когда вы хотите изменить его, чтобы загрузить объект в глобальная поддержка синглтона:
static Venue *gSharedVenue = nil;
- (Venue *) sharedVenue {
if (!gSharedVenue) {
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
[data release];
gSharedVenue = [unarchiver decodeObjectForKey:@"Venue"];
[unarchiver finishDecoding];
[unarchiver release];
}
if (!gSharedVenue) {
gSharedVenue = [[Venue alloc] init];
}
return gSharedVenue;
}
Очевидно, вам нужно каким-то образом передать фактический путь к архивированному объектному файлу.
РЕДАКТИРОВАТЬ НА ОСНОВЕ КОММЕНТАРИИ:
Хорошо, если вы используете синглтон на основе выделения, вам нужно иметь дело с этим в методе инициализации классов: Я предпочитаю реализацию JAX-RS в Джерси, и она имеет встроенную поддержку сериализации JSON вместо JAXB.
Надеюсь, это поможет ...
Можно ли АВТОМАТИЧЕСКИ сгенерировать такой отдых? www.foo.com/createUser/name="foo"&surname="foo"
Это НЕ ОТДЫХ Это RPC .