problemas al crea un simbolic link

Hola vull crear un SymbolicLink y no em funciona el codi es:

+(void)crea_alias:(NSString*)origen:(NSString*)destino
{
NSError **err;
NSFileManager* fm = [NSFileManager defaultManager];
[fm createSymbolicLinkAtPath:origen withDestinationPath:destino error:err];

}

li paso aixo:
[ficheros  crea_alias: @"/Users/kuru/Desktop/dir/luis.txt" :@"/Users/kuru/Desktop/"];

tambe he probat aixo:
[ficheros  crea_alias: @"/Users/kuru/Desktop/dir/luis.txt" :@"/Users/kuru/Desktop/luis.txt"];

y he probat de varies maneres amb un nom diferent etc.. pero no em funciona res a la consola surt:

Previous frame inner to this frame (gdb could not unwind past this frame).

no entenc que passa no tinc problemes al crea archius copiarlos mourels y crea un hardlink pero amb aquest no funciona.

Lluis  sep  25 juny 2009 13:14

Primer et diria que si no comproves la variable err, no utilitzessis aquest mètode o hi fiquessis NULL al paràmetre error.

Si la necessites et recomanaria que no la fessis doble punter. Jo ho faria amb un punter a un error normal: *err, i al paràmetre hi fiques l'adreça: &err. La variable cal iniciar-la a nil, per després comprovar si ha canviat. Així:

+(void)crea_alias:(NSString*)origen:(NSString*)destino
{
NSError *err = nil;
NSFileManager* fm = [NSFileManager defaultManager];
[fm createSymbolicLinkAtPath:origen withDestinationPath:destino error:&err];

}

Sobre la resta no sé que dir-te. Només recordar-te que el primer paràmetre del mètode "createSymbolicLinkAtPath:" és on vols crear l'enllaç simbòlic, i el segon paràmetre és el fitxer o directori que ja existeix.

També et recomanaria que comprovessis el resultat de quan crees el mètode, o imprimir la variable error si aquest existeix.

Bé, no sé que més recomanar-te.

P.S: Tinc la curiositat de saber com és que crees els mètodes amb els paràmetres sense text al davant. No ho havia vist mai!

Xin  sep  25 juny 2009 13:53

Hola el problema era que no sabia que el primer parametre era on vull crear el enllaç.
No poso els parametres amb el text al davant per que soc nou amb la programacio i me acustumat aixi pero per lo que em dius suposo que ho tindria que fer.
haveure si fas mes tutorials amb video m'encanten i s'aprèn molt, jo estic creant un framework amb totes les coses que vaig aprenent, aixi creo els metodes amb les meves paraules i m'és mes facil i després creo la documentacio amb les meves explicacions per acordar-me del que fan y aixi quan faix una aplicacio inserto el framework y ya esta.
Gracies per tot, un salut.

Lluis  sep  25 juny 2009 20:46

Doncs solucionat. De vegades per no llegir-se la documentació passen aquestes coses.

No crec que faci més tutorials, ja que ara el nivell comença ha ser més alt, i cal més dedicació per a ser interessants. A banda que no han tingut molt èxit. :-P

No és obligatori escriure text davant dels altres paràmetres, però pot ajudar a identificar quin paràmetre s'hi espera.

+ (void) crea_alias:(NSString*)origen:(NSString*)destino;
+ (void) creaAlias:(NSString*)tAlias delFitxer:(NSString*)tPath;

Una altra recomanació amb Objective-c és no separar les paraules amb guió baix "_" com amb el Python. Aquí s'acostuma a utilitzar la capitalització. Les classes s'acostumen a començar amb majúscula, i les variables amb minúscula.

També pots mirar, com jo, de diferenciar els diferents tipus de variables. Per exemple jo els arguments dels mètodes els començo amb una "t" minúscula (abans escrivia "theAlias" i ara ho he reduït a "tAlias". Les variables de la classe, les acostumo a començar totes amb guió baix "_". Les variables internes dels metodes són les normals. I per acabar les variables dels bucles les acostumo a començar amb "a" (aPixel = unPixel) així sé que la variable es modifica a cada cicle del bucle.

Bé, et deixo de donar el rotllo.

Xin  sep  26 juny 2009 07:54

Selecciona'l abans d'enviar el commentari