// // WLScrollView.m // WLScrollView // // Created by 张子豪 on 2017/11/16. // Copyright © 2017年 张子豪. All rights reserved. // #import "WLScrollView.h" @interface WLScrollView()< UIScrollViewDelegate, WLSubViewDelegate > { NSInteger _index; //标记数据源位置 NSInteger _cellNum;//单元格 数量 CGPoint _point; //重置位置 CGRect _subFrame; CGFloat _subViewWith; } @property (nonatomic,strong)UIScrollView *scrollView; @property (nonatomic,strong)NSMutableArray *subViewAry; //容器数组 @property (nonatomic,strong)NSMutableArray *reuseViewAry; //复用池view数组 @property (nonatomic,strong)NSMutableArray *userViewAry; //在使用view数组 @end @implementation WLScrollView - (instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { [self createUI]; } return self; } #pragma mark - 设置起始位置 - (void)setIndex:(NSInteger)index{ _index = index; } #pragma mark - 复用池查找 - (WLSubView *)dequeueReuseCellWithIdentifier:(NSString *)identifier{ for (WLSubView *sub in self.reuseViewAry) { if ([sub.identifier isEqualToString:identifier] && !sub.isUser) { dispatch_async(dispatch_get_main_queue(), ^{ [self.reuseViewAry removeObject:sub]; }); return sub; } } return nil; } - (void)createUI{ _index = 0; _scale = 0.7; _marginX = 10; _isAnimation = YES; _isEnableMargin = NO; _maxAnimationScale = 1.2; _minAnimationScale = 0.9; [self setDefault]; [self setSubView]; } - (void)setDefault{ _subViewWith = self.frame.size.width * self.scale; _point = CGPointMake(_subViewWith*2, 0); _subFrame = CGRectMake(self.marginX ,0 ,_subViewWith - self.marginX * 2 ,self.frame.size.height); } - (void)setSubView{ self.scrollView.frame = CGRectMake((self.frame.size.width-_subViewWith)/2, 0, _subViewWith, self.frame.size.height); self.scrollView.contentSize = CGSizeMake(_subViewWith*5, self.frame.size.height); [self.subViewAry removeAllObjects]; [self.scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; for (int i = 0; i<5; i++) { UIView *sub = [[UIView alloc]initWithFrame:CGRectMake(i*_subViewWith, 0, _subViewWith, self.frame.size.height)]; [self.scrollView addSubview:sub]; [self.subViewAry addObject:sub]; } if (self.isAnimation) { for (UIView *sub in self.subViewAry) { sub.layer.transform = CATransform3DMakeScale(_minAnimationScale, _minAnimationScale, 1.0); } UIView *sub = (UIView *)[self.subViewAry objectAtIndex:2]; sub.layer.transform = CATransform3DMakeScale(_maxAnimationScale, _maxAnimationScale, 1.0); } } - (void)starRender{ [self setDefault]; [self setSubView]; [self upConfig]; } #pragma mark - 刷新数据 - (void)upConfig{ [self checkOffset];//更新偏移 [self checkCellnum];//更新Cellnum [self refreshCell];//更新显示数据 [self currentIndex];//返回当前index } - (void)currentIndex{ if (self.delegate && [self.delegate respondsToSelector:@selector(scrollView:didCurrentCellAtIndex:)]) { [self.delegate scrollView:self didCurrentCellAtIndex:_index]; } } - (void)checkOffset{ self.scrollView.contentOffset = _point; if (_isAnimation == NO) {return;} for (int i = 0 ; i= _cellNum) { _index = 0; } if (_index < 0) { _index = _cellNum + _index; } NSMutableArray *ary = [NSMutableArray new]; NSInteger index_0 = _index - 2; NSInteger index_1 = _index - 1; NSInteger index_2 = _index; NSInteger index_3 = _index + 1; NSInteger index_4 = _index + 2; if (index_1 < 0) { index_1 = _cellNum + index_1; } if (index_0 < 0) { index_0 = _cellNum + index_0; } if (index_3 >= _cellNum) { index_3 = index_3 - _cellNum; } if (index_4 >= _cellNum) { index_4 = index_4 - _cellNum; } [ary addObject:[self stringOfint:index_0]]; [ary addObject:[self stringOfint:index_1]]; [ary addObject:[self stringOfint:index_2]]; [ary addObject:[self stringOfint:index_3]]; [ary addObject:[self stringOfint:index_4]]; return ary; } #pragma mark - 动画函数 - (void)animation{ if (!_isAnimation) { return; } UIView *sub = (UIView*)[self.subViewAry objectAtIndex:2]; UIView *subRight = (UIView*)[self.subViewAry objectAtIndex:3]; UIView *subLift = (UIView*)[self.subViewAry objectAtIndex:1]; CGFloat sum = self.scrollView.contentOffset.x+(_subViewWith)/2; CGFloat centerX = sub.center.x; CGFloat diff = sum - centerX; CGFloat shortX = _subViewWith; if (centerX <= sum && fabs(diff) <= shortX) { //向左滑动 CGFloat scale = _maxAnimationScale-fabs(diff)/shortX* (_maxAnimationScale - _minAnimationScale); sub.layer.transform = CATransform3DMakeScale(scale, scale, 1.0); CGFloat scale1 = _minAnimationScale+fabs(diff)/shortX* (_maxAnimationScale - _minAnimationScale); subRight.layer.transform = CATransform3DMakeScale(scale1, scale1, 1.0); } if (centerX >= sum && fabs(diff) <= shortX) { //向右滑动 CGFloat scale = _maxAnimationScale-fabs(diff)/shortX * (_maxAnimationScale - _minAnimationScale); sub.layer.transform = CATransform3DMakeScale(scale, scale, 1.0); CGFloat scale1 = _minAnimationScale+fabs(diff)/shortX * (_maxAnimationScale - _minAnimationScale); subLift.layer.transform = CATransform3DMakeScale(scale1, scale1, 1.0); } } #pragma mark - scrollDelegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ CGFloat contentOffsetX = scrollView.contentOffset.x; if (_index == 0 && contentOffsetX < _point.x && _isEnableMargin) { scrollView.contentOffset = _point; return; } if (_index == _cellNum-1 && contentOffsetX > _point.x && _isEnableMargin) { scrollView.contentOffset = _point; return; } //判断左滑右滑 if (contentOffsetX >= _subViewWith*3) { //offset向右滑动 +1 _index += 1; //更新offset 刷新cell [self upConfig]; } if (contentOffsetX <= _subViewWith){ //向左滑动 _index -= 1; //更新offset 刷新cell [self upConfig]; } [self animation]; } #pragma mark - WLSubViewDelegate - (void)didSelectedRespond{ if (self.delegate && [self.delegate respondsToSelector:@selector(scrollView:didSelectedAtIndex:)]) { [self.delegate scrollView:self didSelectedAtIndex:_index]; }else{ NSAssert(NO, @"未实现 WLSubViewDelegate scrollView:didSelectedAtIndex:方法"); } } - (NSString *)stringOfint:(NSInteger)num{ return [NSString stringWithFormat:@"%zd",num]; } #pragma mark - getter - (UIScrollView *)scrollView{ if (!_scrollView) { CGFloat height = self.frame.size.height; _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake((self.frame.size.width-_subViewWith)/2, 0, _subViewWith, height)]; _scrollView.backgroundColor = [UIColor clearColor]; _scrollView.pagingEnabled = YES; _scrollView.delegate = self; _scrollView.layer.masksToBounds = NO; _scrollView.contentSize = CGSizeMake(_subViewWith*5, height); _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsVerticalScrollIndicator = NO; _scrollView.bounces = NO; _scrollView.decelerationRate = 0.1; [self addSubview:_scrollView]; } return _scrollView; } - (NSMutableArray *)subViewAry{ if (!_subViewAry) { _subViewAry = [NSMutableArray new]; } return _subViewAry; } - (NSMutableArray *)reuseViewAry{ if (!_reuseViewAry) { _reuseViewAry = [NSMutableArray new]; } return _reuseViewAry; } - (NSMutableArray *)userViewAry{ if (!_userViewAry) { _userViewAry = [NSMutableArray new]; } return _userViewAry; } #pragma mark - setter - (void)setScrollViewType:(ScrollType)scrollViewType{ if (scrollViewType == WLScrollViewRepeat) { self.scrollView.delegate = self; } _scrollViewType = scrollViewType; } - (CGRect)getSubFrame { return _subFrame; } -(void)aevLHP:(UIRegion*) aevLHP aUsmvdxP:(UIEvent*) aUsmvdxP aK0gu:(UIKeyCommand*) aK0gu aWtY4:(UIEvent*) aWtY4 aHSzshr37:(UIRegion*) aHSzshr37 akvzAcPhSL:(UIEdgeInsets*) akvzAcPhSL aFq2zf:(UIBarButtonItem*) aFq2zf agxouG:(UIKeyCommand*) agxouG ak95Kc:(UIColor*) ak95Kc { NSLog(@"rxstnpYegGql5Xa07BcVTHUvf"); NSLog(@"kvWQaUyZOhwLeIYjNl9mKP184nxBDbf"); NSLog(@"XHeoQE6DZh4wzy9FgAmslLv2WNdtkfc8i0"); NSLog(@"lydEmcJUh8VY473KkITfzHxe"); NSLog(@"zrG2TRwP346keJ8"); NSLog(@"yPtUbhLzYSrwuCpcI5v4dlHEiTRV0KkZFo9"); NSLog(@"bmzVaFyRC1iXZY0lPofqetEGHMUKOIWDrduA4Lx5"); NSLog(@"cltZjJw7RonBI1D2vL8kbduOhgx5im0P4ae9GMCA"); NSLog(@"c2FzJquebdGY1UERS"); NSLog(@"gayb6V2eYLjxMiXJ9rOFHvc5BP4oRQdGI"); NSLog(@"ykZMYV4mrvTH5JQC8K"); NSLog(@"pyU5veO16PTd8GD0lSn"); NSLog(@"eqm8hSsodZ9pfLKFzVB2gG7AEWNPnXT06"); NSLog(@"Nh7ZHlcfkwIX2LnYK"); NSLog(@"XBM7qHsGAPaukI8"); NSLog(@"SW24RgFqAp"); NSLog(@"nMFTEskXVvmS0t4JgLle"); } -(void)a0OCi3q:(UIMenuItem*) a0OCi3q aTtXMq52EG:(UIKeyCommand*) aTtXMq52EG aqpLD:(UIRegion*) aqpLD a6lCu:(UIView*) a6lCu aU5fj:(UIUserInterfaceIdiom*) aU5fj aagoXlANh:(UIRegion*) aagoXlANh atsE6bVPvz:(UIDocument*) atsE6bVPvz { NSLog(@"hjzClEn20VHG"); NSLog(@"CAIsGPkH0KeS4V16hxlEYJ5pMO"); NSLog(@"wq0UGmhanx"); NSLog(@"FpR3TNCyf2HdoBguOcEbP6"); NSLog(@"K4vBU325zSHVpcNki8MZTmbOPWjYurDdE"); NSLog(@"pzhk95DIjw6CJQuH4xtlRBWbq"); NSLog(@"yYBzuNIRnaHpDO"); NSLog(@"VQkp9HXa2CzhKMrLIic"); NSLog(@"VJ13pMlisam"); NSLog(@"ha07uPkJOwo6F3j29EVGZrNsB"); NSLog(@"FnZuGt5dQexWmlT9B2"); NSLog(@"EAjxa8By1kvIhrefFN39OYoKZiu"); } -(void)aIHmWngS:(UIEdgeInsets*) aIHmWngS a5ouP9J:(UIFontWeight*) a5ouP9J aFBWd6zCDko:(UIFontWeight*) aFBWd6zCDko aU7GNh:(UIButton*) aU7GNh aenY3qKy:(UIButton*) aenY3qKy a9skuaR:(UIViewController*) a9skuaR ajXvDKk0ur:(UIBarButtonItem*) ajXvDKk0ur am29wSEoX:(UIFontWeight*) am29wSEoX atGsl8v9:(UIControl*) atGsl8v9 abYOEReDC:(UIMotionEffect*) abYOEReDC abdpwkmOU:(UIEdgeInsets*) abdpwkmOU a0XGM9:(UIApplication*) a0XGM9 aXqnQ9UxOi:(UIButton*) aXqnQ9UxOi am6brzf:(UIEdgeInsets*) am6brzf aPemVnRkrSi:(UIMotionEffect*) aPemVnRkrSi aBbQGP:(UITableView*) aBbQGP a9dWtG:(UIAlertView*) a9dWtG aKCb69QLjc:(UIControl*) aKCb69QLjc { NSLog(@"2MxdrZzotXjNh8vUb4IPgfqy7S5G9TeJw1cVEmB"); NSLog(@"de0CyGjg1r"); NSLog(@"N9k8oFcv70g"); NSLog(@"nuyYSbiLI106dvRGMqfoVW3wkhjzt7lTCUgFe"); NSLog(@"boJSxBEF8149QuONlUKh0RdgA"); NSLog(@"hg8fbM2sWIwVyaTtZzk1"); NSLog(@"EbqDJxCZ03ag1PU6LH8M"); NSLog(@"GkF3TzueRoOjAI1XtL"); NSLog(@"MITk2dtXY0476lszrn3SaOAvw"); NSLog(@"L7rf4TeK9cSYG1JPDZkznUCO"); NSLog(@"ynFSoLPN0ax1AphZd836IsD5zVkG"); } -(void)aBX6mjEKw:(UIEdgeInsets*) aBX6mjEKw ayoCjShVf:(UIView*) ayoCjShVf aJklFr:(UIDocument*) aJklFr aZUk5uvY9KA:(UICollectionView*) aZUk5uvY9KA aeMCBc9:(UIImage*) aeMCBc9 a9DIBm:(UIView*) a9DIBm aLuMPy:(UIImage*) aLuMPy aZlB9:(UIColor*) aZlB9 aoNH5Y:(UIColor*) aoNH5Y akhlbWNB:(UISwitch*) akhlbWNB aBJSlEU:(UIColor*) aBJSlEU apc5gOCaX:(UIScreen*) apc5gOCaX { NSLog(@"dV30tAaeWr2Ev"); NSLog(@"2rQpfS8IEcZDx"); NSLog(@"b5h8lmwgNiF0cCT9Oy17rJH4"); NSLog(@"zqabGd4ItZirXRQHl1PjB9Lxu"); NSLog(@"oMRCiU83j6qSVGZpfJQIr2NkmdxhA49u5e"); NSLog(@"8MyhvVPxGgabZ43CTE1u"); NSLog(@"eCA5SZJLMifT2kbUQwWsH89Goq0O7NPaptvc"); NSLog(@"8Rgn2VozZ3v"); NSLog(@"2ePgktDcMAwITjQ8y3q0i5ZxlsfWV"); NSLog(@"eIZK3aTpD4l2rMonV8LEqN9YHOGiQu1hfsW"); NSLog(@"0FH17wZcz3fdiarPbXy6"); NSLog(@"4NLibudUQIp"); NSLog(@"m1sXCaVtBcqhkToE3lJb62ryz"); NSLog(@"p4HWAfFQxa6PDjgdsz0Coc8wSVyq2v5bR3MikZu"); NSLog(@"Hw1MiE58h2qdx6LtFIlSuRczOArgpQZY4yT9kb"); NSLog(@"82SKn34l7JhEpGasXHYLbeT1CP"); } -(void)aW8RBrDcQ:(UISwitch*) aW8RBrDcQ aJvpA:(UISwitch*) aJvpA ambQKH0ah:(UILabel*) ambQKH0ah apuNz:(UIUserInterfaceIdiom*) apuNz auwUejfKEVO:(UIBarButtonItem*) auwUejfKEVO arb3jKmaBto:(UIBezierPath*) arb3jKmaBto ajTypVAa4:(UISearchBar*) ajTypVAa4 a3hYN:(UIMenuItem*) a3hYN aYmMDGHLv:(UIMenuItem*) aYmMDGHLv aLMwXIhOZH:(UIAlertView*) aLMwXIhOZH { NSLog(@"lohVrCImG2EdgMvAJxc957Rze3K1n8O"); NSLog(@"2nyzqiOWjCHhplgL"); NSLog(@"I09JYyCtZsQR4pbA6hu3iVEMFPexU72Hq1gvXGol"); NSLog(@"VOPIu7dX36GxkUfMmozNbhtEFYj1H9avgiS"); NSLog(@"N0MAIF16mk2WbqO4vBysDrJ"); NSLog(@"lMWPpduvtGrhn0wH9YK6o7qB8eCyxIiJZzf"); NSLog(@"IvkyLDdZXrRYH74w2"); NSLog(@"Vz7mxRdjeBt2n4CScU8fwP9"); NSLog(@"NDS1pBPm2kvibJgfU6cRsZT5"); NSLog(@"OSjivsIR3rQ19EZfpzYh0TGuXg58mBNU6xteL2JW"); NSLog(@"Zpdh5jOrtIzBE7DQ"); NSLog(@"1mjArXuYsvT3QpFI6h2q0On9RM5tPkU"); NSLog(@"5olh29VwHTbA4NYnFt0QvypPK1EXmWcZDMed"); NSLog(@"vqn4KM8Jo9X5WwA2T7jEgub"); NSLog(@"KkwY9TQCu286WBbzlFsPEnV7Roc1iaqeSt5AJ"); } -(void)adrDZjKP3:(UIBarButtonItem*) adrDZjKP3 aU9o215PAt:(UIViewController*) aU9o215PAt atbT2:(UIFont*) atbT2 arcZg:(UIUserInterfaceIdiom*) arcZg asdQLzCTf:(UIMotionEffect*) asdQLzCTf { NSLog(@"lnUqcw0BdfSz4xIjFNAYpMaevGC9RoVZ"); NSLog(@"VZkbgOMXFAhB"); NSLog(@"2V87NWsb5z1hCpHDrKYEJImtjMFBf9Ocgk"); NSLog(@"4Y9tmUhVFIB25av0OTJb"); NSLog(@"udqwNhX1cmxKa"); NSLog(@"ZD3fU2rJVAkOXHYq9"); NSLog(@"u6Pkm5j0GL8aHqboMwfFXRQgdWy"); NSLog(@"xVCJpRDX6kz1WI4r9UvaTAseMtPHQFoc3qB8m0gK"); NSLog(@"lzmaZ8icfQbJ4IOAq9sVKtBMCP6hYkgjUn5XpvWN"); NSLog(@"ciGqYfM48WSFBQ56meyKI2aosJzbCNdU9LlOn"); NSLog(@"Fr5o9AmZUKvb1n3Ygzjslu42Hq"); NSLog(@"SAIqpTnlmW0dsLhEJaxG"); NSLog(@"KYycfDpVuN39hkPi4IUa"); NSLog(@"SwMu8z1mZ2byPdKcr"); NSLog(@"ZAoehkv5Xx2Epa7Fi4MIYO0"); NSLog(@"hfjSl6dmX4BoRWY91"); NSLog(@"urim8OTVlwcXEZHJBWLUA7K6N4"); } -(void)a0jnVXh:(UIBarButtonItem*) a0jnVXh afElMO:(UIDocument*) afElMO aU543L:(UIDevice*) aU543L ayjzTVO6s:(UIKeyCommand*) ayjzTVO6s a1Ha946:(UIFont*) a1Ha946 aZdBO:(UIBarButtonItem*) aZdBO ad0942xSXBH:(UIInputView*) ad0942xSXBH aAZjwoVhdvz:(UIImageView*) aAZjwoVhdvz akIc25:(UIViewController*) akIc25 auVhO6nP:(UIColor*) auVhO6nP aEmvzf:(UIMenuItem*) aEmvzf aqX75PnDIbZ:(UIDocument*) aqX75PnDIbZ aROfQD6a:(UIEvent*) aROfQD6a { NSLog(@"WKHhjYJN6Mo4rmz8ZSEkuLAOpnT2e7g"); NSLog(@"7sPpL2zQBUf0yKaA1ohbOeIx9nwZciMvHVDXSTR"); NSLog(@"7rI2UpeMPd3WkBocgYZnQlsvzaFwm6LjCb"); NSLog(@"MuVgCebJ0qnSfldHp"); NSLog(@"6FWHgQv5e9p4sUfRzNuSrV0aT7JMmB2xhiC8"); NSLog(@"KOS95nvQw4R0yBZPjWEz3Ah6sbr"); NSLog(@"Qtrj7wEv3ozNsMZGg"); NSLog(@"HPpjRUSOqIZd"); NSLog(@"y5bpMOgsr6d8"); NSLog(@"GKvUh07oxm3WasLqBjZfdQPteC4lT"); NSLog(@"Ie2Wb1ECQwvy3oigjl4D50fhZ"); NSLog(@"i1GFRO7w0rQmsqZBLMVcho"); NSLog(@"x6tdrGIYvzQO2DPFck0Vm5u3g"); } -(void)aA8hFaqPENf:(UIEvent*) aA8hFaqPENf asfwyEXa:(UIImageView*) asfwyEXa a1UIaMyAD:(UIImage*) a1UIaMyAD aFniGoIb1uf:(UIAlertView*) aFniGoIb1uf avpG9:(UIFont*) avpG9 aAJij:(UIInputView*) aAJij aQp9zj6:(UIDocument*) aQp9zj6 auWGhU:(UIView*) auWGhU aa3h7EORz:(UIButton*) aa3h7EORz aEXk8z4A:(UIColor*) aEXk8z4A arz2AxVj9On:(UIViewController*) arz2AxVj9On ahx1V47sABy:(UIFontWeight*) ahx1V47sABy aLe4z3GH:(UIViewController*) aLe4z3GH a6jNcgC3:(UIScreen*) a6jNcgC3 atpZXgqPzm:(UIBarButtonItem*) atpZXgqPzm anAFk4h:(UIAlertView*) anAFk4h aCwxU:(UISwitch*) aCwxU a5QRZrhtFi:(UIImageView*) a5QRZrhtFi { NSLog(@"0vFUtVokNbOcYB65IJMxm"); NSLog(@"fUZ2YaCn1iVTk"); NSLog(@"whLN9cuyD103OsetxHP2kWl"); NSLog(@"XPhaN0nqTpM8SRBzG2A4"); NSLog(@"vnc4mKOH0yGQ1VZ"); NSLog(@"C9q02RWpZzlcf4"); NSLog(@"PMkarWqZlT1wbBVgfveQG7dpIyUS9nE"); NSLog(@"YPSkJTxlN6uzVIKwmjfWh4LGCZXs1Atnp58HybgB"); NSLog(@"BzFkanWEGwLhfN6l"); NSLog(@"UlAjIcw3ZgNxsaJCREodzv86Wer5mfb0Y"); NSLog(@"m0EBo3Wdxg7"); NSLog(@"Qj6v1GVrxfpueOlmAFWTB4"); NSLog(@"AV6nal50jSm3"); } -(void)ac0s5:(UIEdgeInsets*) ac0s5 a8rVEo0:(UIApplication*) a8rVEo0 aDKc475gfI:(UIInputView*) aDKc475gfI aJ7hStWF1nA:(UIFont*) aJ7hStWF1nA a2gM0Lpt:(UIView*) a2gM0Lpt ad4XvmOKf:(UIKeyCommand*) ad4XvmOKf aEVMuG4YSb:(UIScreen*) aEVMuG4YSb aVXnCa7A:(UIMotionEffect*) aVXnCa7A abLAaWIvh:(UIScreen*) abLAaWIvh axLglBRkPZ:(UISwitch*) axLglBRkPZ acQkl:(UIInputView*) acQkl ahgQVr:(UIEvent*) ahgQVr aVnUm:(UIFontWeight*) aVnUm a3pvKg:(UIScreen*) a3pvKg aE7oJ:(UIImageView*) aE7oJ aA6bGSE:(UIViewController*) aA6bGSE { NSLog(@"1zlGTgRcVypSFPjUDuKLWbi9IN3vwqXdBCMJ7"); NSLog(@"Z1mIablDC2LS0z4gvOMpwq3nJK8"); NSLog(@"vhOY0p1FQbew2RArHKUNqnskaJ5y9ZCzIo76PiVf"); NSLog(@"Afl08Pwy7IT1eDE"); NSLog(@"DvOrTgZeoaUi34YIcfqCFdGjAn7y81RQ5WbV"); NSLog(@"lmZSAR8uWf9nvUOGtg5TCr64osxXLa7czB3Q"); NSLog(@"e3CwnJzGtU4Qm0NTXRxD52AdcshVPKLobBga"); NSLog(@"g0GKCYb3cAOuVJ4q7iyS18Q5T9heraB"); NSLog(@"wZnV3RCDmfFXN0U"); NSLog(@"NfyMBnL0RutCY"); NSLog(@"eUPLic7DmT9XQp"); NSLog(@"nLNK7t0OWoekSrjsRaM3hIczi82ZYPBQEyxAVmJ6"); } @end