NRGridView

yass_1988yass_1988 Membre
mai 2012 modifié dans Actualités #1
Bonjour à  tous,



je suis en ce moment en train de mettre en place le framework "NRGridView". Pour tester j'ai essayé de le mettre en place avec l'exemple fourni sur github. Sa marche.

Du coup pour ceux qui connaissent bien ce framework, est ce que à  la fin de remplissage de la grille avec les cellules et de son affichage, est il possible de reparcourir toute les cellules, changer leur contenu (Ex: changer d'image) et de modifier du coup la vue au fur et à  mesure?



Voila le viewController.m de l'exemple fourni sur github:


<br />
<br />
<br />
[color=#999999][b]#import &quot;MyGridViewController.h&quot;[/b][/color]<br />
<br />
[b]static[/b] CGFloat [b]const[/b] _kNRGridViewSampleCrazyScrollEnabled [b]=[/b] NO; [color=#999988][i]// For the lulz.[/i][/color]<br />
[b]@implementation[/b] [color=#445588][b]MyGridViewController[/b][/color]<br />
<br />
[color=#999999][b]#pragma mark - Crazy Scroll LULZ[/b][/color]<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]__beginGeneratingCrazyScrolls[/b][/color]<br />
{<br />
	[b]if[/b](_kNRGridViewSampleCrazyScrollEnabled[b]==[/b]NO)[b]return[/b];<br />
	<br />
	NSInteger randomSection [b]=[/b] arc4random() [b]%[/b] ([[[self gridView] dataSource] respondsToSelector:[b]@selector[/b](numberOfSectionsInGridView:)]<br />
											  [b]?[/b] [[[self gridView] dataSource] numberOfSectionsInGridView:[self gridView]]<br />
											  [b]:[/b] [color=#009999]1[/color]);<br />
	NSInteger randomItemIndex [b]=[/b] arc4random() [b]%[/b] [[[self gridView] dataSource] gridView:[self gridView]<br />
															   numberOfItemsInSection:randomSection];<br />
	<br />
	<br />
	[[self gridView] selectCellAtIndexPath:[NSIndexPath indexPathForItemIndex:randomItemIndex inSection:randomSection]<br />
								autoScroll:YES<br />
							scrollPosition:NRGridViewScrollPositionAtMiddle<br />
								  animated:YES];<br />
	<br />
	[color=#999988][i]/*[/i][/color]<br />
[color=#999988][i][[self gridView] scrollRectToSection:randomSection [/i][/color]<br />
[color=#999988][i]animated:YES [/i][/color]<br />
[color=#999988][i]scrollPosition:NRGridViewScrollPositionAtBottom];[/i][/color]<br />
[color=#999988][i]*/[/i][/color]<br />
	<br />
	[self performSelector:[b]@selector[/b](__beginGeneratingCrazyScrolls)<br />
			   withObject:[color=#0086B3]nil[/color]<br />
			   afterDelay:[color=#009999]2.5[/color]<br />
				  inModes:[NSArray arrayWithObject:NSRunLoopCommonModes]];<br />
}<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]__endGeneratingCrazyScrolls[/b][/color]<br />
{<br />
	[NSObject cancelPreviousPerformRequestsWithTarget:self<br />
											 selector:[b]@selector[/b](__beginGeneratingCrazyScrolls)<br />
											   object:[color=#0086B3]nil[/color]];<br />
}<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]viewDidAppear:[/b][/color]([color=#445588][b]BOOL[/b][/color])[color=#008080]animated[/color]<br />
{<br />
	[super viewDidAppear:animated];<br />
	[self __beginGeneratingCrazyScrolls];<br />
}<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]viewWillDisappear:[/b][/color]([color=#445588][b]BOOL[/b][/color])[color=#008080]animated[/color]<br />
{<br />
	[super viewWillDisappear:animated];<br />
	[self __endGeneratingCrazyScrolls];<br />
}<br />
<br />
[color=#999999][b]#pragma mark -[/b][/color]<br />
<br />
[b]-[/b] ([color=#445588][b]id[/b][/color])[color=#990000][b]initWithNibName:[/b][/color](NSString [b]*[/b])[color=#008080]nibNameOrNil[/color] [color=#990000][b]bundle:[/b][/color](NSBundle [b]*[/b])[color=#008080]nibBundleOrNil[/color]<br />
{<br />
	self [b]=[/b] [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];<br />
	[b]if[/b] (self) {<br />
		[color=#999988][i]// Custom initialization[/i][/color]<br />
	}<br />
	[b]return[/b] self;<br />
}<br />
<br />
[color=#999999][b]#pragma mark - View lifecycle[/b][/color]<br />
[b]-[/b] ([color=#445588][b]BOOL[/b][/color])[color=#990000][b]canBecomeFirstResponder[/b][/color]{[b]return[/b] YES;}<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]loadView[/b][/color]<br />
{<br />
	[super loadView];<br />
	[[self gridView] setCellSize:CGSizeMake([color=#009999]100[/color], [color=#009999]75[/color])];<br />
}<br />
<br />
[color=#999988][i]// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.[/i][/color]<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]viewDidLoad[/b][/color]<br />
{<br />
	[super viewDidLoad];<br />
}<br />
<br />
[b]-[/b] ([color=#445588][b]BOOL[/b][/color])[color=#990000][b]shouldAutorotateToInterfaceOrientation:[/b][/color](UIInterfaceOrientation)[color=#008080]interfaceOrientation[/color]<br />
{<br />
	[color=#999988][i]// Return YES for supported orientations[/i][/color]<br />
	[b]return[/b] YES;<br />
}<br />
<br />
<br />
[color=#999999][b]#pragma mark - NRGridView Data Source[/b][/color]<br />
<br />
<br />
<br />
[b]-[/b] (NSInteger)[color=#990000][b]numberOfSectionsInGridView:[/b][/color](NRGridView [b]*[/b])[color=#008080]gridView[/color]<br />
{<br />
	[b]return[/b] [color=#009999]5[/color];<br />
}<br />
<br />
[b]-[/b] (NSInteger)[color=#990000][b]gridView:[/b][/color](NRGridView [b]*[/b])[color=#008080]gridView[/color] [color=#990000][b]numberOfItemsInSection:[/b][/color](NSInteger)[color=#008080]section[/color]<br />
{<br />
	[b]return[/b] [color=#009999]50[/color];<br />
}<br />
<br />
[b]-[/b] (NSString[b]*[/b])[color=#990000][b]gridView:[/b][/color](NRGridView [b]*[/b])[color=#008080]gridView[/color] [color=#990000][b]titleForHeaderInSection:[/b][/color](NSInteger)[color=#008080]section[/color]<br />
{<br />
	[b]return[/b] [NSString stringWithFormat:[color=#DD1144]@&quot;Section %i&quot;[/color], section];<br />
}<br />
<br />
[b]-[/b] (NSString[b]*[/b])[color=#990000][b]gridView:[/b][/color](NRGridView [b]*[/b])[color=#008080]gridView[/color] [color=#990000][b]titleForFooterInSection:[/b][/color](NSInteger)[color=#008080]section[/color]<br />
{<br />
   [b]if[/b](section[b]%[/b][color=#009999]2[/color])<br />
	   [b]return[/b] [NSString stringWithFormat:[color=#DD1144]@&quot;Footer %i&quot;[/color], section];<br />
	[b]return[/b] [color=#0086B3]nil[/color];<br />
}<br />
<br />
<br />
[b]-[/b] (NRGridViewCell[b]*[/b])[color=#990000][b]gridView:[/b][/color](NRGridView [b]*[/b])[color=#008080]gridView[/color] [color=#990000][b]cellForItemAtIndexPath:[/b][/color](NSIndexPath [b]*[/b])[color=#008080]indexPath[/color]<br />
{<br />
	[b]static[/b] NSString [b]*[/b]MyCellIdentifier [b]=[/b] [color=#DD1144]@&quot;MyCellIdentifier&quot;[/color];<br />
	<br />
	NRGridViewCell[b]*[/b] cell [b]=[/b] [gridView dequeueReusableCellWithIdentifier:MyCellIdentifier];<br />
	<br />
	[b]if[/b](cell [b]==[/b] [color=#0086B3]nil[/color]){<br />
		cell [b]=[/b] [[[NRGridViewCell alloc] initWithReuseIdentifier:MyCellIdentifier] autorelease];<br />
		<br />
		[[cell textLabel] setFont:[UIFont boldSystemFontOfSize:[color=#009999]11.[/color]]];<br />
		[[cell detailedTextLabel] setFont:[UIFont systemFontOfSize:[color=#009999]11.[/color]]];<br />
<br />
	}<br />
	<br />
	cell.imageView.image [b]=[/b] [UIImage imageNamed:[NSString stringWithFormat:[color=#DD1144]@&quot;%i.png&quot;[/color], (indexPath.row[b]%[/b][color=#009999]7[/color])]];<br />
	cell.textLabel.text [b]=[/b] [NSString stringWithFormat:[color=#DD1144]@&quot;Item %i&quot;[/color], indexPath.itemIndex];<br />
	cell.detailedTextLabel.text [b]=[/b] [color=#DD1144]@&quot;Some details&quot;[/color];<br />
<br />
	[b]return[/b] cell;<br />
}<br />
<br />
[color=#999999][b]#pragma mark - NRGridView Delegate[/b][/color]<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]gridView:[/b][/color](NRGridView [b]*[/b])[color=#008080]gridView[/color] [color=#990000][b]didSelectCellAtIndexPath:[/b][/color](NSIndexPath [b]*[/b])[color=#008080]indexPath[/color]<br />
{<br />
	MyGridViewController [b]*[/b]gridViewController [b]=[/b] [[MyGridViewController alloc] initWithGridLayoutStyle:([self gridLayoutStyle] [b]==[/b] NRGridViewLayoutStyleVertical<br />
																									  [b]?[/b] NRGridViewLayoutStyleHorizontal<br />
																									  [b]:[/b] NRGridViewLayoutStyleVertical)];<br />
	[[self navigationController] pushViewController:gridViewController<br />
										   animated:YES];<br />
	[gridViewController release];<br />
}<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]gridView:[/b][/color](NRGridView [b]*[/b])[color=#008080]gridView[/color] [color=#990000][b]didLongPressCellAtIndexPath:[/b][/color](NSIndexPath [b]*[/b])[color=#008080]indexPath[/color]<br />
{<br />
	UIMenuController[b]*[/b] menuController [b]=[/b] [UIMenuController sharedMenuController];<br />
	NRGridViewCell[b]*[/b] cell [b]=[/b] [gridView cellAtIndexPath:indexPath];<br />
<br />
	[self becomeFirstResponder];<br />
	[menuController setMenuItems:[NSArray arrayWithObject:[[[UIMenuItem alloc] initWithTitle:[color=#DD1144]@&quot;Hooorayyyy&#33;&quot;[/color]<br />
																					 action:[b]@selector[/b](handleHooray:)] autorelease]]];<br />
	[menuController setTargetRect:[cell frame]<br />
						   inView:[self view]];<br />
	<br />
	[menuController setMenuVisible:YES animated:YES];<br />
	<br />
}<br />
<br />
[color=#999999][b]#pragma mark - UIMenuController Actions[/b][/color]<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]handleHooray:[/b][/color]([color=#445588][b]id[/b][/color])[color=#008080]sender[/color]<br />
{<br />
	[[self gridView] unhighlightPressuredCellAnimated:YES];<br />
}<br />
<br />
[b]-[/b] ([color=#445588][b]BOOL[/b][/color])[color=#990000][b]canPerformAction:[/b][/color]([color=#445588][b]SEL[/b][/color])[color=#008080]action[/color] [color=#990000][b]withSender:[/b][/color]([color=#445588][b]id[/b][/color])[color=#008080]sender[/color]<br />
{<br />
	[b]return[/b] (action [b]==[/b] [b]@selector[/b](handleHooray:));<br />
}<br />
<br />
[color=#999999][b]#pragma mark - Memory Management[/b][/color]<br />
<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]didReceiveMemoryWarning[/b][/color]<br />
{<br />
	[color=#999988][i]// Releases the view if it doesn&#39;t have a superview.[/i][/color]<br />
	[super didReceiveMemoryWarning];<br />
	<br />
	[color=#999988][i]// Release any cached data, images, etc that aren&#39;t in use.[/i][/color]<br />
}<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]viewDidUnload[/b][/color]<br />
{<br />
	[super viewDidUnload];<br />
	[color=#999988][i]// Release any retained subviews of the main view.[/i][/color]<br />
	[color=#999988][i]// e.g. self.myOutlet = nil;[/i][/color]<br />
}<br />
<br />
[b]-[/b] ([color=#445588][b]void[/b][/color])[color=#990000][b]dealloc[/b][/color]<br />
{<br />
	[super dealloc];<br />
}<br />
<br />
[b]@end[/b]<br />
[b]
[/b]



Merci d'avance
«134

Réponses

  • StephSteph Membre
    Le crazyScroll il est là  pour l'exemple de souvenir, c'est pour générer des cellules à  l'infini pour les tests.



    Tu as juste besoin des fonctions similaires à  une tableView, le header si besoin, le nb de cellules par sections, la construction de la cellule, l'action à  la sélection et en option sur un appui long. Tu set le delegate et le datasource, c'est exactement comme une TableView Classique.
  • D'accord, donc pour le moment après l'affichage de la grille, j'essaye juste de modifier le contenu de ma première cellule en quise de test.


    <br />
    <br />
    - ([color=#b41ca4]void[/color])viewDidAppear:([color=#b41ca4]BOOL[/color])animated<br />
    {<br />
    <br />
        [[color=#b41ca4]super[/color] [color=#401082]viewDidAppear[/color]:animated];<br />
    [color=#38595d]<br />
    [color=#000000]    [/color][color=#578187]NRGridViewCell[/color][color=#000000] * cell =[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]cellAtIndexPath[color=#000000]:[[/color][color=#7134aa]NSIndexPath[/color][color=#000000] [/color]indexPathForItemIndex[color=#000000]:[/color][color=#3d01d9]0[/color][color=#000000] [/color]inSection[color=#000000]:[/color][color=#3d01d9]1[/color][color=#000000]]];[/color][/color]<br />
    [color=#401082]<br />
    [color=#000000]    cell.[/color][color=#578187]imageView[/color][color=#000000].[/color][color=#7134aa]image[/color][color=#000000] = [[/color][color=#7134aa]UIImage[/color][color=#000000] [/color]imageNamed[color=#000000]:[[/color][color=#7134aa]NSString[/color][color=#000000] [/color]stringWithFormat[color=#000000]:[/color][color=#c72c25]@&quot;6.png&quot;[/color][color=#000000]]];[/color][/color]<br />
    <br />
    }<br />
    




    Du coup je pense bien récupérer ma première cellule, je modifie son image mais du coup pour la réinsérer dans ma grille et réactualiser la vue de ma grille, je sais pas comment faire.
  • Bon bien visiblement en fessant:


    <br />
    [color=#401082]<br />
    [color=#000000][[[/color][color=#b41ca4]self[/color][color=#000000] [/color][color=#38595d]gridView[/color][color=#000000]] [/color]insertSubview[color=#000000]:cell [/color]atIndex[color=#000000]:[/color][color=#3d01d9]0[/color][color=#000000]];[/color][/color][color=#401082]<br />
    [color=#000000]
    
    [/color][/color]



    sa marche.
  • CéroceCéroce Membre, Modérateur
    'yass_1988' a écrit:


    Bon bien visiblement en fessant:


    Rien de tel qu'une bonne fessée.
  • AliGatorAliGator Membre, Modérateur
    'yass_1988' a écrit:


    D'accord, donc pour le moment après l'affichage de la grille, j'essaye juste de modifier le contenu de ma première cellule en quise de test.


    <br />
    <br />
    - ([color=#b41ca4]void[/color])viewDidAppear:([color=#b41ca4]BOOL[/color])animated<br />
    {<br />
    <br />
    	[[color=#b41ca4]super[/color] [color=#401082]viewDidAppear[/color]:animated];<br />
    <br />
    [color=#38595d][color=#000000]	[/color][color=#578187]NRGridViewCell[/color][color=#000000] * cell =[[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]cellAtIndexPath[color=#000000]:[[/color][color=#7134aa]NSIndexPath[/color][color=#000000] [/color]indexPathForItemIndex[color=#000000]:[/color][color=#3d01d9]0[/color][color=#000000] [/color]inSection[color=#000000]:[/color][color=#3d01d9]1[/color][color=#000000]]];[/color][/color]<br />
    <br />
    [color=#401082][color=#000000]	cell.[/color][color=#578187]imageView[/color][color=#000000].[/color][color=#7134aa]image[/color][color=#000000] = [[/color][color=#7134aa]UIImage[/color][color=#000000] [/color]imageNamed[color=#000000]:[[/color][color=#7134aa]NSString[/color][color=#000000] [/color]stringWithFormat[color=#000000]:[/color][color=#c72c25]@&quot;6.png&quot;[/color][color=#000000]]];[/color][/color]<br />
    <br />
    }<br />
    




    Du coup je pense bien récupérer ma première cellule, je modifie son image mais du coup pour la réinsérer dans ma grille et réactualiser la vue de ma grille, je sais pas comment faire.
    OMG image/crazy.gif' class='bbc_emoticon' alt=' B) ' />



    Nan mais tu as déjà  utilisé une bête UITableView de base, juste ?

    NRGridView utilise la même API, faut faire pareil... et utiliser les méthodes de DataSource, pas faire du insertSubview qui sort d'on ne sait-où !
  • StephSteph Membre
    Punaise, j'avais pas vu le code dans le viewDidAppear, quelle horreur ...
  • Merci les gars pour vos commentaires, il est vrai que je n'ai jamais utiliser un UITableView, je veux bien reconnaitre mes lacunes.

    Mais il y a une manière de commenter svp.
  • StephSteph Membre
    Ben un conseil, reprends les bases parce que t'embarquer dans class custom quand on ne connait pas les composants d'origine, c'est pas du tout une bonne idée.



    Regarde comment fonctionne une UITableView, c'est pas compliqué et ensuite tu comprendras comment utiliser la class. Pour cela tu as la doc et pléthore de tutos sur le net.



    Bon courage
  • Oky, merci quand même
  • Je me demandais:



    1)Est ce que une méthode existe pour pourvoir détecter un scroll de l'utilisateur

    2) Si oui est il possible de récupérer du coup l'index de la première et dernière cellule qui apparaissent sur la vue après un scroll (Pas l'index de la première et dernière cellule de la grille, mais juste ceux apparaissent sur le devise ou le simulateur)



    j'ai cherché comment faire dans les docs et pas trouvé grand chose

    (Soit j'ai mal cherché ou alors mon niveau d'anglais ne doit pas être top)



    Merci
  • CéroceCéroce Membre, Modérateur
    'yass_1988' a écrit:


    1)Est ce que une méthode existe pour pourvoir détecter un scroll de l'utilisateur


    UITableView hérite de UIScrollView. Il existe un méthode dans UIScrollViewDelegate pour être averti des scrolls.


    'yass_1988' a écrit:


    2) Si oui est il possible de récupérer du coup l'index de la première et dernière cellule qui apparaissent sur la vue après un scroll (Pas l'index de la première et dernière cellule de la grille, mais juste ceux apparaissent sur le devise ou le simulateur)


    -[UITableView indexPathsForVisibleRows];
  • Yep, c'est bon.

    Merci
  • yass_1988yass_1988 Membre
    mai 2012 modifié #14
    Yep,

    comme j'utilise le framework "NRGridView", j'utilise indexPathsForVisibleCells.


    <br />
    - ([color=#b41ca4]void[/color])scrollViewDidEndDecelerating:([color=#7134aa]UIScrollView[/color] *)scrollView<br />
    {<br />
    [color=#38595d][color=#000000]	[/color][color=#000000][[[/color][color=#b41ca4]self[/color][color=#000000] [/color]gridView[color=#000000]] [/color]indexPathsForVisibleCells[color=#000000]];[/color][/color]<br />
    }<br />
    




    Sauf que quand je scroll, l'application s'arrête et j'ai ce message qui apparait:


    2012-05-24 10:59:16.917 vht2[911:f803] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<SubNRGridViewCell 0x6a60180> valueForUndefinedKey:]: this class is not key value coding-compliant for the key indexPath.'




    SubNrGridViewCell est une sous classe de NRGridViewCell, qui me sert à  placer correctement mon image et mon textLabel exactement comme je ferais avec une sous-classe de UITableViewCell.



    du coup j'utilise:


    <br />
    - ([color=#B41CA4]void[/color])scrollViewDidEndDecelerating:([color=#7134AA]UIScrollView[/color] *)scrollView<br />
    {<br />
    [color=#38595D][color=#000000]	[/color][color=#000000][[[/color][color=#B41CA4]self[/color][color=#000000] [/color]gridView[color=#000000]] v[/color]isibleCells[color=#000000]];[/color][/color]<br />
    }<br />
    




    Voila la réponse






    2012-05-24 11:14:15.458 vht2[980:f803] (

    "<SubNRGridViewCell: 0x6872cf0; frame = (0 700; 80 100); layer = <CALayer: 0x68962f0>>",

    "<SubNRGridViewCell: 0x6a47fa0; frame = (240 700; 80 100); layer = <CALayer: 0x6a48f40>>",

    "<SubNRGridViewCell: 0x6a434b0; frame = (240 900; 80 100); layer = <CALayer: 0x6a47890>>",

    "<SubNRGridViewCell: 0x689dfe0; frame = (160 800; 80 100); layer = <CALayer: 0x6870130>>",

    "<SubNRGridViewCell: 0x689b690; frame = (0 900; 80 100); layer = <CALayer: 0x68a3f50>>",

    "<SubNRGridViewCell: 0x68a9010; frame = (80 700; 80 100); layer = <CALayer: 0x689c9d0>>",

    "<SubNRGridViewCell: 0x68705c0; frame = (0 800; 80 100); layer = <CALayer: 0x68917e0>>",

    "<SubNRGridViewCell: 0x6a4bb40; frame = (80 800; 80 100); layer = <CALayer: 0x6a39540>>",

    "<SubNRGridViewCell: 0x6a48cd0; frame = (160 700; 80 100); layer = <CALayer: 0x6a46530>>",

    "<SubNRGridViewCell: 0x68aa350; frame = (160 900; 80 100); layer = <CALayer: 0x68aa2c0>>",

    "<SubNRGridViewCell: 0x68aa450; frame = (240 800; 80 100); layer = <CALayer: 0x6899280>>",

    "<SubNRGridViewCell: 0x68a9780; frame = (0 1000; 80 100); layer = <CALayer: 0x68a1680>>",

    "<SubNRGridViewCell: 0x6a3a120; frame = (80 900; 80 100); layer = <CALayer: 0x6a4a700>>"




    Du coup je récupère bien le frame et le layer de mes cellules visibles, mais je ne sais pas si avec je peux récupérer leur index.



    Une solution ?
  • Personne n'a une idée, pour mon problème ?
  • CéroceCéroce Membre, Modérateur
    Essaie de savoir pourquoi indexPathsForVisibleCells ne fonctionne pas.
  • yass_1988yass_1988 Membre
    mai 2012 modifié #17
    En fait ce que je ne comprend pas c'est pourquoi visibleCells fonctionne et pas indexPathsForVisibleCells image/sad.png' class='bbc_emoticon' alt=':(' />
  • Dans le message, j'ai l'impression qu'on me dit que SubNRGridViewCell n'a pas d'indexPath.

    Pourtant elle hérite bien de NRGRidViewCell image/huh.gif' class='bbc_emoticon' alt='???' />
  • Bein en faite non, même en passant directement par NRGridViewCell, j'ai la même erreur.




    *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NRGridViewCell 0x6c34600> valueForUndefinedKey:]: this class is not key value coding-compliant for the key indexPath.'





    Je n'arrive pas à  savoir pourquoi sa fonctionne pas
  • Récupère la dernière version de NRGridView.
  • yass_1988yass_1988 Membre
    mai 2012 modifié #21
    Salut, je viens tout juste de récupérer la dernière version version de NRGridView, sauf que quand je RUN mon Application, une erreur s'affiche:






    Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 254




    Pourtant la construction du build s'est bien passé image/huh.gif' class='bbc_emoticon' alt='???' />
  • Sa me le le fessait pas ça avant que je change de version !!! Bizarre
  • Lol, maintenant quand je réessaye de récupérer la dernière version, j'ai effectivement des erreur lors de la construction du build.
  • T'aurais pas ajouté 2x NRGridView dans ton projet par hasard?
  • Bon ,j'ai tout repris à  zéro, car je m'en sortais pas avec tout ces erreurs et quand j'essaie de mettre en place ton framework, que cela soit l'ancien ou le le mis à  jour j'ai cette erreur qui apparait:






    Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 254




    Je comprend pas, visiblement la compilation échoue à  une étape et cela serait lors de la compilation de mon AppViewController.m, classe ou j'utilise NRGridView
  • CéroceCéroce Membre, Modérateur
    Regarde les détails du build, parce qu'en l'état, tu sais juste que ça a foiré, mais pas pourquoi.
  • yass_1988yass_1988 Membre
    mai 2012 modifié #27




    CompileC /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/Objects-normal/armv7/AppViewController.o vht2/AppViewController.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler

    cd "/Users/ybadih/Downloads/A envoyer/vht2"

    setenv LANG en_US.US-ASCII

    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch armv7 -fmessage-length=0 -std=gnu99 -fobjc-arc -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wreturn-type -Wno-implicit-atomic-properties -Wformat -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-sign-compare -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -DDEBUG=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -Wprotocol -Wdeprecated-declarations -g -Wno-conversion -Wno-sign-conversion -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=5.1 -iquote /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-generated-files.hmap -I/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-own-target-headers.hmap -I/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-all-target-headers.hmap -iquote /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-project-headers.hmap -I/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Products/Debug-iphoneos/include -I/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/DerivedSources/armv7 -I/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/DerivedSources -F/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Products/Debug-iphoneos "-F/Users/ybadih/Downloads/A envoyer/vht2" "-F/Users/ybadih/Downloads/A envoyer/vht2/../../Downloads/AliSoftware-OHGridView-df6d45b/OHGridView/Products" "-F/Users/ybadih/Downloads/A envoyer/vht2/../../AliSoftware-OHGridView-df6d45b/OHGridView/Products" -include /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/PrecompiledHeaders/vht2-Prefix-drjeherckgkqkedhrvacidnhohxa/vht2-Prefix.pch -MMD -MT dependencies -MF /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/Objects-normal/armv7/AppViewController.d --serialize-diagnostics /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/Objects-normal/armv7/AppViewController.dia -c "/Users/ybadih/Downloads/A envoyer/vht2/vht2/AppViewController.m" -o /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/Objects-normal/armv7/AppViewController.o



    0 clang 0x0000000101be33e2 _ZL15PrintStackTracePv + 34

    1 clang 0x0000000101be3869 _ZL13SignalHandleri + 553

    2 libsystem_c.dylib 0x00007fff88e0fcfa _sigtramp + 26

    3 libsystem_c.dylib 0x00000000315827f8 _sigtramp + 18446603339047578392

    4 clang 0x00000001013879e5 llvm::SelectionDAGBuilder::visitInvoke(llvm::InvokeInst const&) + 405

    5 clang 0x0000000100f62da0 llvm::SelectionDAGBuilder::visit(unsigned int, llvm::User const&) + 112

    6 clang 0x0000000100f62592 llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) + 66

    7 clang 0x0000000100f624c8 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction const>, llvm::ilist_iterator<llvm::Instruction const>, bool&) + 40

    8 clang 0x0000000100e8ff91 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 2417

    9 clang 0x0000000100e8b1d5 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 789

    10 clang 0x0000000100e8aeae llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 110

    11 clang 0x0000000100e7ffb2 llvm::FPPassManager::runOnFunction(llvm::Function&) + 322

    12 clang 0x0000000100e854bb llvm::FPPassManager::runOnModule(llvm::Module&) + 155

    13 clang 0x0000000100e808c1 llvm::MPPassManager::runOnModule(llvm::Module&) + 289

    14 clang 0x0000000100e802c5 llvm::PassManagerImpl::run(llvm::Module&) + 277

    15 clang 0x0000000100e801ad llvm::PassManager::run(llvm::Module&) + 13

    16 clang 0x0000000100e5ee3c clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) + 4508

    17 clang 0x0000000100e5c641 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 513

    18 clang 0x0000000100d280f6 clang::ParseAST(clang::Sema&, bool) + 406

    19 clang 0x0000000100d26bd7 clang::CodeGenAction::ExecuteAction() + 855

    20 clang 0x0000000100cf913f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 879

    21 clang 0x0000000100cf7dcb clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2683

    22 clang 0x0000000100cea5ce cc1_main(char const**, char const**, char const*, void*) + 5086

    23 clang 0x0000000100cc4dd8 main + 648

    24 clang 0x0000000100cc4b44 start + 52

    Stack dump:

    0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -cc1 -triple thumbv7-apple-ios5.1.0 -S -disable-free -disable-llvm-verifier -main-file-name AppViewController.m -pic-level 1 -mdisable-fp-elim -relaxed-aliasing -target-abi apcs-gnu -target-cpu cortex-a8 -mfloat-abi soft -target-feature +soft-float-abi -target-linker-version 128.2 -g -coverage-file /var/folders/3l/1lb7cv2x2yzdz_j81lx9t8z80000gn/T/AppViewController-BNTtSJ.s -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/3.1 -dependency-file /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/Objects-normal/armv7/AppViewController.d -MT dependencies -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk -iquote /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-generated-files.hmap -iquote /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-project-headers.hmap -include-pch /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/PrecompiledHeaders/vht2-Prefix-drjeherckgkqkedhrvacidnhohxa/vht2-Prefix.pch.pth -D DEBUG=1 -D IBOutlet=__attribute__((iboutlet)) -D IBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName))) -D IBAction=void)__attribute__((ibaction) -I /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-own-target-headers.hmap -I /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/vht2-all-target-headers.hmap -I /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Products/Debug-iphoneos/include -I /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/DerivedSources/armv7 -I /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/DerivedSources -F/Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Products/Debug-iphoneos -F/Users/ybadih/Downloads/A envoyer/vht2 -F/Users/ybadih/Downloads/A envoyer/vht2/../../Downloads/AliSoftware-OHGridView-df6d45b/OHGridView/Products -F/Users/ybadih/Downloads/A envoyer/vht2/../../AliSoftware-OHGridView-df6d45b/OHGridView/Products -fmodule-cache-path /var/folders/3l/1lb7cv2x2yzdz_j81lx9t8z80000gn/T/clang-module-cache -O0 -Wno-trigraphs -Wno-missing-field-initializers -Wno-missing-prototypes -Wreturn-type -Wno-implicit-atomic-properties -Wformat -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-sign-compare -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -Wprotocol -Wdeprecated-declarations -Wno-conversion -Wno-sign-conversion -std=gnu99 -fno-dwarf2-cfi-asm -fno-dwarf-directory-asm -ferror-limit 19 -fmessage-length 0 -fblocks -fobjc-runtime-has-arc -fobjc-runtime-has-weak -fobjc-runtime-has-terminate -fobjc-arc -fobjc-exceptions -fexceptions -fsjlj-exceptions -fpascal-strings -fdiagnostics-show-option -serialize-diagnostic-file /Users/ybadih/Library/Developer/Xcode/DerivedData/vht2-hlbrkpwnfrgjeycoicvwtgdxlapl/Build/Intermediates/vht2.build/Debug-iphoneos/vht2.build/Objects-normal/armv7/AppViewController.dia -o /var/folders/3l/1lb7cv2x2yzdz_j81lx9t8z80000gn/T/AppViewController-BNTtSJ.s -x objective-c /Users/ybadih/Downloads/A envoyer/vht2/vht2/AppViewController.m

    1. <eof> parser at end of file

    2. Code generation

    3. Running pass 'Function Pass Manager' on module '/Users/ybadih/Downloads/A envoyer/vht2/vht2/AppViewController.m'.

    4. Running pass 'ARM Instruction Selection' on function '@\01-[AppViewController browse1]'

    clang: error: unable to execute command: Segmentation fault: 11

    clang: error: clang frontend command failed due to signal 2 (use -v to see invocation)

    clang: note: diagnostic msg: Please submit a bug report to http://developer.apple.com/bugreporter/ and include command line arguments and all diagnostic information.

    clang: note: diagnostic msg: Preprocessed source(s) and associated run script(s) are located at:

    clang: note: diagnostic msg: /var/folders/3l/1lb7cv2x2yzdz_j81lx9t8z80000gn/T/AppViewController-wErlN1.mi

    clang: note: diagnostic msg: /var/folders/3l/1lb7cv2x2yzdz_j81lx9t8z80000gn/T/AppViewController-wErlN1.sh

    Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 254
  • StephSteph Membre
    Vérifie que les .m de NRGridView sont bien dans le target ... ça sent la case target pas cochée à  l'import !
  • Comment on vérifie cela ?
  • CéroceCéroce Membre, Modérateur
    mai 2012 modifié #30
    Sélectionne le fichier sur la gauche.

    Dans la barre de droite, clique sur l'icône représentant un fichier.

    Tu as une rubrique Target Membership.

    Si c'est coché, alors le fichier est ajouté à  la cible (exécutable) en question.
  • Non, c'est pas coché
Connectez-vous ou Inscrivez-vous pour répondre.