11 din 13
11
intrebari programare iPhone
  [ Ignoră ]   [ # 151 ]
RankRank
Jr. Member
Din: Bucuresti
Macuser din: 26.03.10

am incercat si metoda care foloseste core graphics, inclusiv am folosit

CGContextSetInterpolationQuality(bufferkCGInterpolationHigh); 

insa rezultatul a fost parca mai slab decat ceea ce obtin cu metoda postata mai sus. sunt curios de ce se pierde atat din calitate la down-scale. sa aiba legatura oare cu dpi-ul?

PS: pe mine nu ma intereseaza orientarea, toate au proprietatea imageOrientation == UIImageOrientationUp

 Semnătură 

 iPhone 5 16GB black, iOS 7 beta 5
 MacBook Pro 15” Unibody, Late 2011 2,4 Ghz Intel Core i7, 8GB RAM, 128GB SSD, Radeon 6770 1GB, HiRes Display, OS X 10.8.3
 Thunderbolt Display

Profil
 
  [ Ignoră ]   [ # 152 ]
Avatar
RankRankRankRank
Moderator
Din: Cluj-Napoca
Macuser din: 26.01.06

Pai pune si un exemplu, nu-mi dau seama ce inseamna pierdere de calitate. De exemplu pana si in photoshop trebuie sa dai sharp dupa ce faci un resize, mai ales la thumburi.

 Semnătură 

Mcintoshing…

Profil
 
  [ Ignoră ]   [ # 153 ]
RankRank
Jr. Member
Din: Bucuresti
Macuser din: 26.03.10

pierdere de calitate inseamna ca unele dintre imagini sunt resize-uite si se vad bine, sharp, nici o problema, iar unele sunt resize-uite si devin fuzzy. m-am gandit ca o fi din cauza scaleFactorului (l-am rotunjit la numar intreg) insa tot degeaba.

 Semnătură 

 iPhone 5 16GB black, iOS 7 beta 5
 MacBook Pro 15” Unibody, Late 2011 2,4 Ghz Intel Core i7, 8GB RAM, 128GB SSD, Radeon 6770 1GB, HiRes Display, OS X 10.8.3
 Thunderbolt Display

Profil
 
  [ Ignoră ]   [ # 154 ]
Avatar
RankRankRankRank
Moderator
Din: Cluj-Napoca
Macuser din: 26.01.06

A folosit cineva celule diferite intr-un tabel? Ce incerc sa fac este sa am 3 celule diferite dar sa folosesc si reuseIdentifier-ul, astfel incat cand ma intorc la niste celule care existau deja sa le ia din cache. Problema este ca imi crapa cand e vorba sa le foloseasca, chiar la linia cu dequeueReusableCellWithIdentifier iar eroarea nu este prea ajutatoare desigur. Daca le creez de fiecare data de la 0 se misca mult prea sacadat.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    int section 
[indexPath section];
    
    if (
section == 0{NSLog(@"section 0");
        
SettingsCell1 *cell = (SettingsCell1 *)[tableView dequeueReusableCellWithIdentifier:@"sec1"];
        if (
cell == nil{
            cell 
[[[SettingsCell1 alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"sec1"] autorelease];
        
}
        
return [cell autorelease];
    
}
    
else if (section == 1{NSLog(@"section 1");
        
UITableViewCell *cell [tableView dequeueReusableCellWithIdentifier:@"sec2"];
        if (
cell == nil{
            cell 
[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"sec2"] autorelease];
        
}
        
return [cell autorelease];
    
}
    
else if (section == 2{NSLog(@"section 2");
        
UITableViewCell *cell [tableView dequeueReusableCellWithIdentifier:@"sec3"];
        if (
cell == nil{
            cell 
[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"sec3"] autorelease];
        
}
        
return [cell autorelease];
    
}
    NSLog
(@"section none");
    return 
nil;
[ Modificat: 12 Iunie 2011 06:02 AM de .ral:cr ]
 Semnătură 

Mcintoshing…

Profil
 
  [ Ignoră ]   [ # 155 ]
Avatar
RankRankRank
Member
Din: Bucuresti
Macuser din: 11.10.05

Care-i eroarea care nu ajuta, cum arata backtrace-ul in momentul crash-ului?

Profil
 
  [ Ignoră ]   [ # 156 ]
Avatar
RankRankRankRank
Sr. Member
Din: Bucuresti
Macuser din: 22.09.06

Cell-urileau aceasi inaltime? In caz ca nu trebuie cateva if-uri si in heightForRowAtIndexPath.

 Semnătură 

A man should look for what is, and not for what he thinks should be.—Albert Einstein

Profil
 
  [ Ignoră ]   [ # 157 ]
Avatar
RankRankRankRank
Moderator
Din: Cluj-Napoca
Macuser din: 26.01.06

Totul functioneaza perfect daca nu reutilizez celulele, deci inaltimea n-ar fi o problema.
Eroarea este EXEC_BAD_ACCESS si atat. Stiu ca dupa ce crapa mai era un shortcut la care puteam sa apelez si vedeam mai multe chestii in consola, dar am uitat-o. Poate asta sa ajute:

 Semnătură 

Mcintoshing…

Profil
 
  [ Ignoră ]   [ # 158 ]
Avatar
RankRankRankRank
Sr. Member
Din: Bucuresti
Macuser din: 22.09.06

Eroarea EXEC_BAD_ACCESS apare cand vrei sa folosesti un obiect ce a fost dealocat.
Incearca sa rulezi “profile” si din Instruments alegi NSZombies,iti va arata exact unde e problema.

 Semnătură 

A man should look for what is, and not for what he thinks should be.—Albert Einstein

Profil
 
  [ Ignoră ]   [ # 159 ]
Avatar
RankRankRankRank
Sr. Member
Din: Bucuresti
Macuser din: 22.09.06

Daca nu ma insel problema ta este ca nu ai declarat statis NSString pentru identifiers…

 Semnătură 

A man should look for what is, and not for what he thinks should be.—Albert Einstein

Profil
 
  [ Ignoră ]   [ # 160 ]
Avatar
RankRankRankRank
Sr. Member
Din: Bucuresti
Macuser din: 22.09.06

static smile

 Semnătură 

A man should look for what is, and not for what he thinks should be.—Albert Einstein

Profil
 
  [ Ignoră ]   [ # 161 ]
Avatar
RankRankRankRank
Moderator
Din: Cluj-Napoca
Macuser din: 26.01.06

Era de la autorelease, nu stiu ce mi-a venit sa-l folosesc pt ca in acelasi proiect mai am un tabel fara.

static? de ce crezi ca ar fi fost aia o problema? mi se pare oricum ciudat sa folosesti static in interiorul unei functii, static se foloseste ca sa definesti membrii unei clase in loc de a unei instante.

 Semnătură 

Mcintoshing…

Profil
 
  [ Ignoră ]   [ # 162 ]
Avatar
RankRankRankRank
Sr. Member
Din: Bucuresti
Macuser din: 22.09.06

Static este identifier-ul in exemlele de la Apple.
Abia acum am observat si eu ca ai autorelease de 2 ori,si la crearea cell-urilor si la return.

 Semnătură 

A man should look for what is, and not for what he thinks should be.—Albert Einstein

Profil
 
  [ Ignoră ]   [ # 163 ]
Avatar
RankRankRankRank
Moderator
Din: Cluj-Napoca
Macuser din: 26.01.06

Cand le instantiam de fiecare data aveam autorelease doar la return, dar cum am schimbat codu, am uitat…

O chestie dubioasa care ma deranjeaza vizual la codu default de la apple este stilul cu acolada incepand de pe linia urmatoare metodei, cand face synthesize x=_x, randuri inghesuite… si nici staticul nu l-am inteles.

 Semnătură 

Mcintoshing…

Profil
 
  [ Ignoră ]   [ # 164 ]
Avatar
RankRankRank
Member
Din: Bucuresti
Macuser din: 11.10.05

Aproape intotdeauna crash-ulile in objc_msgSend sunt cauzate de probleme de memory management.

Daca dealoci un obiect memoria care ii apartinea nu mai apartine procesului tau.
Cand incerci sa trimiti un mesaj obiectului la care tu inca tii pointer, objc_msgSend incearca sa acceseze memorie din afara spatiului de adrese al procesului tau si kernel-ul ii da peste bot (BAD_ACCESS).

Google NSZombieEnabled.
Daca e pus in environment, NSZombieEnabled face ca orice aplicatie Cocoa sa-ti spuna ce obiect deja dealocat incerci sa folosesti.

Profil
 
  [ Ignoră ]   [ # 165 ]
Rank
Newbie
Din: Cluj-Napoca
Macuser din: 06.03.11

Am clasa de mai jos:

@interface PDFLinkAnnotation NSObject {
    CGPDFDictionaryRef annotationDictionary
;
}

- (id)initWithDictionary:(CGPDFDictionaryRef)newAnnotationDictionary;

@
end

@implementation PDFLinkAnnotation

- (id)initWithDictionary:(CGPDFDictionaryRef)newAnnotationDictionary {
    self 
[super init];
    if (
self{
        self
->annotationDictionary newAnnotationDictionary;
    
}
    
    
return self;
}

@end 

Si in codul aplicatiei am secventa urmatoare:

CGPDFDictionaryRef annotationDictionary NULL;            
if (
CGPDFArrayGetDictionary(annotsArrayj, &annotationDictionary;)) {
    PDFLinkAnnotation 
*linkAnnotation [[PDFLinkAnnotation alloc] initWithDictionaryannotationDictionary]// warning
    
[pageLinks addObjectlinkAnnotation];
    
[linkAnnotation release];

La compilare imi da un warning “Passing argument 1 of ‘initWithDictionary:’ from incompatible pointer type” la linia marcata cu //warning.
De doua zile ma uit la cod si nu imi dau seama de unde vine problema. Codul functioneaza fara probleme, dar as vrea sa scap de warning.
Poate observa cineva ce imi scapa mie.

Multumesc,
Sorin

Profil
 
   
11 din 13
11
 
‹‹ Grand Central e acum Open Source      Fink ››