小编EXC*_*ESS的帖子

注册UITableViewCell以便重用时,会调用该单元上的哪个init方法?

我正在尝试使用UITableViewCell设置为样式的自定义子类UITableViewCellStyleSubtitle并将其与之一起使用registerClass:forCellReuseIdentifier:.但是,我不知道该怎么做.

我的想法是覆盖init方法和调用

self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:myReuseIdentifier];
Run Code Online (Sandbox Code Playgroud)

在其中.但是,我无法弄清楚init调用哪个方法(或者这是否是正确的方法.)

我试图拦截所有以下的init方法,但在出列单元格时它们似乎都不正确:

  • init
  • initWithCoder
  • initWithFrame

我已经确认dequeueReusableCellWithIdentifier:forIndexPath:返回了一个正确类型的单元格,所以我知道它正在被创建.我只是不知道init调用哪个方法所以我无法设置默认样式.

initialization objective-c uitableview ios

14
推荐指数
1
解决办法
1万
查看次数

Objective-C如何检查字符串是否为null

所以我想检查我的数组中的项目[clientDataArray objectForKey:@"ClientCompany"]是否是nil.

    temp = [clientDataArray objectForKey:@"ClientCompany"];
    if (temp != [NSNull null]) infofieldCompany.text = temp;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经能够通过上面的代码实现这一点,但它确实给了我警告

  • 警告:NSArray可能无法回应-objectForKey:
  • 警告:比较不同的Objective-C类型struct NSNull * 并且struct NSString *没有强制转换

我的主要兴趣是第二次警告,但第一次警告也让我感兴趣.我该如何调整上面的代码?

null objective-c nsstring

13
推荐指数
3
解决办法
3万
查看次数

如何在iPhone应用程序中录制和播放声音?

我尝试分别使用AVAudioSessionAVAudioPlayer录制和播放声音,但音量非常低.

我尝试将音量值设置AVAudioPlayer为1.0或更高,但没有多大帮助.

还有什么可以录制可以播放的声音?

iphone avaudioplayer avaudiorecorder ios4

13
推荐指数
2
解决办法
9792
查看次数

混淆了initWithCoder和自定义UIViews

我正在尝试创建一个自定义UIView,从nib文件中引入它的视图.

在我的控制器中我有类似的东西:

self.arcView=[[JtView alloc] initWithCoder:self];
self.arcView.backgroundColor=[UIColor redColor];
self.arcView.frame=CGRectMake(30.0f,200.0f, 100.0f, 100.0f);
[self.view addSubview:self.arcView];
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是应该进入论证的内容initWithCoder (NSCoder *)?我试过自己,但得到了一个不兼容的指针类型,但这似乎工作.但问题#2:

其次,说法是,你用initWithCodernibs,并initWithFrame把您的自定义视图帧时.好吧,我想nib在我的自定义视图中加载一个然后将其放入框架中.我可以像上面一样添加一个框架,它没问题(它看起来像是有效的)?

ios ios6

9
推荐指数
2
解决办法
2万
查看次数

通过像素检查UIImage像素

我正在创建一个应用程序,我试图获取当前触摸点的颜色,如果这个点不是黑色,那么它将运行迭代/递归并将所有非黑点存储在数组中.我正在使用此函数进行迭代:

-(void)function:(CGFloat)positiveX:(CGFloat)positiveY:(CGFloat)negativeX:(CGFloat)negativeY
{
    if (canDoPositiveX == YES)
    {
        //Checking in positive
        if (![[NSString stringWithFormat:@"%@",[self colorOfPoint:CGPointMake(positiveX, positiveY)]] isEqualToString:@"UIDeviceRGBColorSpace 0 0 0 1"])
        {
            CGPoint point = CGPointMake(positiveX, positiveY);
            [array addObject:[NSValue valueWithCGPoint:point]];
            [self function:positiveX+1 :positiveY :negativeX :negativeY];
        }
        else
        {
            canDoPositiveX = NO;
        }
    }

    if (canDoPositiveY == YES)
    {
        //Checking in positive
        if (![[NSString stringWithFormat:@"%@",[self colorOfPoint:CGPointMake(positiveX, positiveY)]] isEqualToString:@"UIDeviceRGBColorSpace 0 0 0 0"])
        {
            CGPoint point = CGPointMake(positiveX, positiveY);
            [array addObject:[NSValue valueWithCGPoint:point]];
            [self function:positiveX :positiveY+1 :negativeX :negativeY];
        }
        else
        {
            canDoPositiveY = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios

8
推荐指数
1
解决办法
512
查看次数

UILongPressGestureRecognizer可以与touchesMoved等触摸事件一起使用吗?

如果我添加一个UILongPressGestureRecognizer对象是否有一种方法可以touchesMoved在我的longGesture选择器响应longpress手势而不必先抬起手指后触发该对象中的事件?

我所看到的是,一旦选择器识别出长手势,touchesMoved事件将不会响应,直到您将手指从对象上移开.换句话说,你不能按,暂停,移动.

这甚至可以通过手势识别器实现,也可以通过点击并按住方法实现此目的.

我希望这是有道理的.

谢谢.

iphone xcode objective-c uigesturerecognizer ios

6
推荐指数
1
解决办法
1242
查看次数

MPMoviePlayerController iO7问题

我试图通过MPMoviePlayerController播放存储在我的应用程序文档目录中的视频.我使用以下方法播放视频:

NSArray *directoryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [directoryPath objectAtIndex:0];
int videoNumber = (int)[[NSUserDefaults standardUserDefaults] integerForKey:@"videoSaved"];
NSString* videoName = [NSString stringWithFormat:@"video-%d.mov",videoNumber];
NSString *exportPath = [docsDir stringByAppendingPathComponent:videoName];
NSURL *exportUrl = [NSURL fileURLWithPath:exportPath isDirectory:NO];

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:exportUrl];
moviePlayer.fullscreen = YES;
moviePlayer.view.frame = self.view.bounds;
[self.view addSubview:moviePlayer.view];
[moviePlayer prepareToPlay];
[moviePlayer play];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(movieDidExitFullscreen:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:nil];
Run Code Online (Sandbox Code Playgroud)

它适用于除iOS7以外的所有iOS版本.在iOS7中,当我尝试播放视频时,我发现了这个错误:

_itemFailedToPlayToEnd: {    kind = 1;    new = 2;    old = 0;}
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c ios ios7

5
推荐指数
1
解决办法
6254
查看次数

摆脱UITableView上方的界限

我有一个UITableView(碰巧有一个UISearchBar),似乎无法弄清楚如何摆脱它上面的白色/灰色边框.我需要UISearchBar在它上面的黑色和黑色之间有无缝的黑色.

我试图隐藏它UISearchBar以查看它是否与它有任何关系,但该线仍然出现.

有任何想法吗?

线

border line uitableview uisearchbar ios

2
推荐指数
1
解决办法
1142
查看次数

同时动画两个UIView子视图不起作用

由于某种原因,我无法两个动画两个子视图postion.我写了以下内容

[self addChildViewController:self.photosViewController];
[self.photosViewController.view setFrame:CGRectMake(0, -self.view.frame.size.height,    self.view.frame.size.width, self.view.frame.size.height)];

[self.view addSubview:self.photosViewController.view];

[UIView animateWithDuration:1 delay:0
                        options:UIViewAnimationOptionCurveEaseIn
                     animations:^{

                         [self.stepsView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)];
                         [self.photosViewController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
                     }
                     completion:^(BOOL finished) {
                         if (finished) {

                             button.tag = 0;
                         }
                     }];
Run Code Online (Sandbox Code Playgroud)

self.stepsView是一个IBOutlet UIView并且self.photosViewController.view是已添加到视图的子视图控制器视图.

目前的代码只有self.PhotosViewController.view动画.但是,如果我注释掉我添加子视图控制器视图的行,subview那么self.stepsView动画正确.

即使我在调用此方法之前添加了子视图控制器及其视图,也会发生相同的错误.

需要帮助,因为我用另一个应用程序跑了几个月,不得不做一个肮脏的黑客来绕过它,现在想解决这个问题.

谢谢

xcode core-animation uiviewcontroller uiview ios

2
推荐指数
1
解决办法
3003
查看次数

iPhone:copyItemAtPath出错

我试图将文件从一个文件夹复制到文档目录中的另一个文件夹,如下所示:

    - (void)saveFile:(NSString *)folderPath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"destination.png"];

    NSError *error = nil;
    NSString *srcPath = [folderPath stringByAppendingPathComponent:@"filename.png"];


    BOOL success = [[NSFileManager defaultManager] copyItemAtPath:srcPath toPath:documentsDirectory error:&error];
    if (error)
    {
        NSLog(@"%@",error);
    }

    if (success == YES)
    {
        NSLog(@"Copied");
    }
    else
    {
        NSLog(@"Not Copied");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我记录错误时,它给我以下消息:

Error Domain=NSCocoaErrorDomain Code=516 "The operation couldn’t be completed. (Cocoa error 516.)" UserInfo=0x9d665a0 {NSUserStringVariant=(
    Move
), NSFilePath=/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BC37C9D7-7995-47C1-8131-2B07BADCBECB/Documents/foldername/B713320C-2CA0-4FD3-93F6-71D76B102B83/src.png, NSDestinationFilePath=/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BC37C9D7-7995-47C1-8131-2B07BADCBECB/Documents, NSUnderlyingError=0x9d41c60 "The …
Run Code Online (Sandbox Code Playgroud)

objective-c nsfilemanager ios

2
推荐指数
1
解决办法
1万
查看次数

你能找出用户安装的应用程序吗?

有没有办法确定用户是否安装了特定的应用程序,甚至可以计算他们安装了多少个应用程序?

该信息将用于定位传递给用户的信息.

objective-c ios

0
推荐指数
1
解决办法
2141
查看次数

iPhone:从NSMutableArray中删除图像

我创造,我很存储的应用程序UIImageNSMutableArray

    -(void)mainImageSelected: (id)sender
{    
    mainImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"image%d.png",[sender tag]]]];
    [myArray addObject:mainImageView];
}
Run Code Online (Sandbox Code Playgroud)

现在,我想在用户触摸时显示此图像.我正在做这样的事情:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:self.view];

    if ([currentObject isEqualToString:@"myObject"])
    {
            NSLog(@"Hello World");
            [self.view addSubview:[myArray lastObject]];
            [[myArray lastObject]setCenter:point];
    }
}
Run Code Online (Sandbox Code Playgroud)

到这里,它工作正常,但问题是,当用户按下撤消按钮时,我想删除此图像.为此,我正在做这样的事情:

-(IBAction)Undo
{
    [myArray removeLastObject];
}
Run Code Online (Sandbox Code Playgroud)

它是从数组中删除对象,但不删除/删除图像.有人请解决这个问题.

iphone xcode objective-c ipad ios

-1
推荐指数
1
解决办法
240
查看次数