小编Jes*_*ala的帖子

存储在对象中的潜在泄漏

我正在从SDK分析这段代码,并根据我最新问题的答案出现错误:

如何在iOS中正确释放内存:永远不会释放内存; 潜在的内存泄漏指向

dasblinkenlight建议我创建一个NSData对象,可以释放我的uint8_t*字节......

但是在这段代码中:

/**
 * this will set the brush texture for this view
 * by generating a default UIImage. the image is a
 * 20px radius circle with a feathered edge
 */
-(void) createDefaultBrushTexture{
    UIGraphicsBeginImageContext(CGSizeMake(64, 64));
    CGContextRef defBrushTextureContext = UIGraphicsGetCurrentContext();
    UIGraphicsPushContext(defBrushTextureContext);

    size_t num_locations = 3;
    CGFloat locations[3] = { 0.0, 0.8, 1.0 };
    CGFloat components[12] = { 1.0,1.0,1.0, 1.0,
        1.0,1.0,1.0, 1.0,
        1.0,1.0,1.0, 0.0 };
    CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB();
    CGGradientRef myGradient = CGGradientCreateWithColorComponents (myColorspace, components, locations, num_locations);

    CGPoint …
Run Code Online (Sandbox Code Playgroud)

xcode memory-leaks ios

4
推荐指数
1
解决办法
8157
查看次数

如何从具有Java日期的对象获取日期变量

我有一个带有以下文字的对象:

System.out.println("My date: " + valor);
Run Code Online (Sandbox Code Playgroud)

它打印出来

我的约会时间:2015年1月1日星期四13:00:00

我想将此文本转换为Date变量,这是我的代码:

    dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy",new Locale("es","MX"));
    try {
        Date dateToString = dateFormat.parse(valor.toString());

    } catch (ParseException e) {
        new Date();
    }
Run Code Online (Sandbox Code Playgroud)

我总是得到当前的日期,我已经为SimpleDateFormat尝试了几种组合,但没有一种工作,将我的Object转换为Date变量的正确方法是什么

java date

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

如何将字节数组转换为UIImage

我有一个webservice,它发回一个字节数组,如下所示:

<ax23:IMGBLOB>-119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,100,0,0,0,106,8,3,0,0,0,125,54,4,22,0,0,0,51,80,76,84,69,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-73,-107,-30,-126,0,0,0,16,116,82,78,83,0,16,32,48,64,80,96,112,-128,-112,-96,-80,-64,-48,-32,-16,84,-32,-88,-56,0,0,2,126,73,68,65,84,120,-38,-19,90,65,-110,-124,32,12,4,68,64,69,-32,-1,-81,-35,-53,-78,-96,40,4,-79,-70,118,-86,-90,-113,51,106,-101,116,-120,33,-127,-3,43,72,101,-84,13,127,-80,-42,40,-7,42,-63,100,108,-72,-124,53,-45,75,38,-84,62,84,-32,-41,97,-125,-72,118,-95,9,-89,-7,0,-123,-56,-115,-88,-101,35,-98,90,-79,-122,14,-84,-113,-84,49,62,116,-63,-101,126,-71,-9,112,-58,-66,25,45,127,-95,-51,118,113,-127,-20,52,-29,124,-1,34,121,-31,78,-71,-100,-119,76,-113,-32,-5,-111,65,-117,-37,43,-11,-23,82,65,118,-107,63,40,42,91,-21,-24,-96,12,-47,101,-22,64,33,8,-122,31,104,20,-123,99,9,9,-106,104,-67,-80,-7,123,-79,38,-78,-73,114,51,35,99,118,29,44,-21,-45,-27,-59,-13,59,-87,-66,-14,-118,117,66,-91,120,89,104,-102,-69,7,57,124,114,20,-11,101,-118,119,-2,40,-37,-91,69,35,111,99,-60,-25,28,99,44,-2,46,46,-9,-100,99,-108,101,-81,-28,-85,-56,49,-50,98,-86,-126,56,-50,6,-64,93,41,75,-23,44,63,13,86,29,-2,-34,97,38,69,-33,32,-44,-83,-61,-72,-89,-26,4,122,102,-14,-68,-8,-93,16,100,80,-106,-14,-123,69,52,113,102,47,96,-114,79,19,-105,-122,88,-10,10,-74,43,83,-72,-49,-87,-57,33,-82,84,-47,45,-43,-71,-115,5,92,-97,-10,-102,37,-72,104,72,-43,126,111,120,-81,41,46,91,-20,-51,-16,-115,-9,-88,94,83,100,-15,-53,116,79,18,97,37,113,-35,23,-17,-19,99,30,-72,5,-79,-24,45,-77,-108,63,-77,-22,54,9,-67,-24,-43,39,-17,-104,40,123,-101,-124,94,-58,-120,83,2,-77,77,111,-79,112,-126,-99,-88,-2,-78,-57,39,24,2,73,-62,-62,-119,53,-5,49,-128,101,23,73,-16,21,9,-53,-57,-86,72,73,35,73,112,-110,17,-18,81,-71,93,59,-103,36,-63,-118,-74,40,38,-41,125,35,-112,-108,48,-68,-107,-118,109,78,98,-70,72,8,-27,-84,73,36,-55,119,68,18,-54,86,-79,-44,-102,16,92,44,84,-79,93,74,35,7,73,74,-97,1,72,66,-104,-21,36,60,102,-78,33,18,-53,10,8,8,9,-64,93,31,41,-4,90,13,97,-56,98,-124,-92,21,72,-126,28,77,-11,27,37,-43,67,62,90,-112,-49,47,-94,-112,24,40,-119,4,-71,36,-126,20,119,-112,50,21,89,112,-89,-51,68,-101,-60,78,-99,91,7,-56,38,8,-79,-99,-125,108,76,-79,91,-20,-9,-101,5,54,122,6,-46,-10,64,52,112,32,-83,40,68,83,13,-47,30,-124,52,58,17,45,91,68,-13,25,-46,70,71,12,4,16,-93,13,-64,-112,102,37,-113,-101,-74,-66,113,-45,22,18,7,98,112,6,29,1,-30,-121,-103,-8,-79,108,57,96,118,-75,1,-77,43,6,-52,-128,81,57,116,-24,-113,63,-66,-128,63,-120,-127,63,82,66,63,28,99,56,-2,-104,15,-2,-64,-46,-8,-47,-85,47,-66,-8,-30,-77,-16,3,-74,-58,-81,-89,-116,-22,56,-74,0,0,0,0,73,69,78,68,-82,66,96,-126,@@@@</ax23:IMGBLOB>
Run Code Online (Sandbox Code Playgroud)

这个字节数组在Java中用于获取图像,我一直尝试使用几种方法但没有成功,我将在下面发布其中一个:

-(UIImageView *)convierteImagen: (NSMutableString *)cadenaImagen{
    //NSString to NSData (temporary)
    NSData *tempData = [cadenaImagen dataUsingEncoding:NSUTF8StringEncoding];

    //NSLog(@"datos crudos: %@", tempData);

    //2.NSData to Bytes
    const void  *bytes2 = [tempData bytes];
    int8_t      *bytes  = (int8_t*)bytes2;
    int         len     = tempData.length;

    cadenaImagen   = [[NSMutableString alloc]init];

    [cadenaImagen appendString:@"["];
    for (int i = 0; i < len; i++) {
        if (i)  [cadenaImagen appendString:@","];
        [cadenaImagen appendFormat:@"%d", bytes[i]];
    }
    [cadenaImagen appendString:@"]"];

    //3.Bytes to NSData
    NSData *datos2 = [NSData dataWithBytes:bytes length:len];


    return [[UIImageView alloc]initWithImage:[UIImage imageWithData:datos2]];
}
Run Code Online (Sandbox Code Playgroud)

我称之为这种方法的方式是:

- (void)viewDidLoad …
Run Code Online (Sandbox Code Playgroud)

byte uiimage ios

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

在Objective-C中从UIViewController显示一个SplitViewController

我正在用一个按钮开发一个ViewController(登录应用程序),当我按下这个按钮时我想要像这样出现我的UISplitView:

- (IBAction)loadSplitViewController:(id)sender {

    [self showSplitViewController];
}
Run Code Online (Sandbox Code Playgroud)

为我的splitViewController创建开发的代码是这样的:

-(void)showSplitViewController{

    UIStoryboard *mainStoryboard                    = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle: nil];

    LeftViewController      *leftViewController     = [mainStoryboard instantiateViewControllerWithIdentifier:@"LeftViewController"];
    RightViewController     *rightViewController    = [mainStoryboard instantiateViewControllerWithIdentifier:@"RightViewController"];

    UINavigationController  *leftNavController      = [[UINavigationController alloc] initWithRootViewController:leftViewController];
    UINavigationController  *rightNavController     = [[UINavigationController alloc] initWithRootViewController:rightViewController];

    UISplitViewController   *splitViewController    = [[UISplitViewController alloc] init];
    splitViewController.viewControllers             = [NSArray arrayWithObjects:leftNavController, rightNavController, nil];

    leftViewController.delegate     = rightViewController;
    splitViewController.delegate    = rightViewController;

    [self presentViewController:splitViewController animated:YES completion:^{}];
}
Run Code Online (Sandbox Code Playgroud)

事情是...如果我用于显示我的splitViewController这一行:

[self presentViewController:splitViewController animated:YES completion:^{}];
Run Code Online (Sandbox Code Playgroud)

抛出一个错误

我也尝试过

[self.view addSubview:splitViewController.view];
Run Code Online (Sandbox Code Playgroud)

但这样我的splitViewController永远不会旋转,并且委托也不能正常工作......我不希望我的splitViewController成为我的viewController的子视图,我希望它看起来更像是一个独立的modalView

任何帮助,我会很感激

提前致谢

objective-c ipad uisplitviewcontroller ios

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

在旋转我的应用程序Objective-C时,替换我在UISplitView中的detailViewController崩溃了

我有一个带有2个初始控制器的SplitViewController应用程序:

  • leftViewController(master)
  • rightViewController(详细信息)

我的rightViewController(详细信息)有splitViewController的委托,用于显示显示/隐藏我的菜单的按钮(主)

我的leftViewController(master)是一个菜单应用程序,当我选择menú的任何元素时,我触发了一个连接到我的master的segue,它替换了我的detailViewController用于所选择的菜单元素

当我这样做,如果我尝试将我的iPhone旋转为隐藏菜单,我的应用程序崩溃并说:

*** -[rightViewController respondsToSelector:]: message sent to deallocated instance 
Run Code Online (Sandbox Code Playgroud)

我想这是因为我的splitViewController想要与它的委托,它的旧rightViewController进行通信,但是它已经消失了,它已被我的视图所取代,

也许我需要:

将我的委托重新分配给我的新viewController(详细信息)或删除我的rightViewController的委托并将其分配给我的newViewController

也在我的新viewController中试过这个:

@interface newViewController ()<UISplitViewControllerDelegate>

@end

@implementation newViewController 


- (void)viewDidLoad
{

    UISplitViewController *splitViewController = (UISplitViewController *)self.view.window.rootViewController;
    UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
    splitViewController.delegate = (id)navigationController.topViewController;
}
...
@end
Run Code Online (Sandbox Code Playgroud)

但仍然没有工作...我得到了同样的信息

我该如何解决???

提前致谢

编辑:添加我的segue代码,以帮助回答我的问题

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if ([segue.identifier isEqualToString:@"viewSceneAgenda"]) {

        [segue.destinationViewController setTitle:@"Citas"];
        [segue.destinationViewController setUserIDElement:UID_CUS];
        [segue.destinationViewController setOverallAppointments:overallDates];

    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c ipad uisplitviewcontroller screen-rotation ios

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