我正在从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) 我有一个带有以下文字的对象:
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变量的正确方法是什么
我有一个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) 我正在用一个按钮开发一个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
任何帮助,我会很感激
提前致谢
我有一个带有2个初始控制器的SplitViewController应用程序:
我的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)