在阅读基金会的标题时,我发现了这个:
- (__strong const char *)UTF8String NS_RETURNS_INNER_POINTER;
// Convenience to return null-terminated UTF8 representation
Run Code Online (Sandbox Code Playgroud)
这是来自NSString.hiOS 7.1 SDK,__strong const char *这里的意思是什么?
我最困惑的是"__strong"这里.
如果我将view.bounds.origin设置为(50,50),则绘制(50,50)子视图以便查看.但我认为它应该是反向结果,那么bounds.origin是什么意思?
对不起,伙计们,我不是母语为英语的人,所以这次我把这个示例代码和图像~~
subview = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
subview.backgroundColor = [UIColor blueColor];
subview.bounds = CGRectMake(50, 50, 200, 200);
subsubview = [[UIView alloc] initWithFrame:CGRectMake(0, 0,100,100)];
subsubview.backgroundColor = [UIColor yellowColor];
[subview addSubView:subsubView];
Run Code Online (Sandbox Code Playgroud)
这会导致这个结果:

为什么黄色的视图位于那里?
有人可以告诉我,什么样的记忆是脏/居民,他们来自哪里?常驻内存与Mac OS的"有线内存"意味着相同吗?
这就是我所看到的Mac OS内存:
有线:这是指内核代码等.不应该从RAM中移出的内存.也称为常驻记忆.
共享:两个或多个进程共享的内存.这两个进程都会显示这个内存量,因此实际使用的内存量可能有点误导.
Real:这是task_info()报告的应用程序的"实际"内存使用情况 - 对当前进程具有的物理页面数量的粗略计数.(RSIZE)
私有:这是一个进程仅在它自己的内存中使用的内存.(RPRVT)
虚拟:映射到任何内容的进程中的地址空间总量 - 无论是变量或任何内容的任意大空间 - 它都不等于实际的VM使用.(VSIZE)
活动:当前标记为活动的内存,用于RAM.
非活动:"不活动的内存不再被使用并且已缓存到磁盘.它将保留在RAM中,直到另一个应用程序需要空间.如果您(或您的计算机的客户端)回来,将此信息留在RAM中对您有利.以后." - Mac OS X帮助
Free:没有任何数据的实际可用RAM量.
关系的功能如下: FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:","employeesToEmployees",$source.employees")
这个"功能"是什么?它将如何被称为?是否有任何指南介绍给这个?
我读过Apple的
但我仍然没有得到这个.
我有一个项目需要通过AES加密一些数据.但是,我在我的项目中硬编码AES键如下:
NSString *passwd = @"someStringAsKey";
NSData *encryptedData = [Encrypter encrypteData:unencryptedData];
Run Code Online (Sandbox Code Playgroud)
如果有人想破解我的二进制文件以找到我硬编码的AES密钥,那么这很容易吗?如果是,存储AES密钥的更好方法是什么?
编辑: 密钥用于加密和解密大量数据,应用程序从服务器下载数据,然后应用程序加密它并将加密数据保存在磁盘上.此密钥在每个设备的基础上使用,这意味着只要每次应用程序运行,每个设备都可以拥有自己的密钥,它知道如何生成密钥.
EDIT2: 数据下载过程受这种方式保护:客户端每次登录时都会生成一个随机的私钥/公钥对.它将公钥发送到服务器,服务器使用公钥加密AES密钥,然后将加密的AES密钥发送到客户端.客户端解密AES密钥并将其放入内存.然后客户端和服务器传输由该AES密钥加密的数据.
我的目的是保护磁盘上的数据不被黑客解密.我假设黑客可以获得的是我的二进制映像和磁盘上的数据.黑客也可以在自己的设备上运行我的应用程序并分析内存.
我不需要保护这种攻击:黑客是如此聪明,他写了一个病毒运行在越狱设备上,病毒可以分析我的应用程序的运行内存,以搜索内存中的一些密钥.所以我们不需要担心网络传输的安全性.
我有一个名为image@2x.png.的文件大小为1KB.我的应用程序是一个仅限iPhone的应用程序.
我通过此调用在我的应用中加载图像:
[UIImage imageNamed:@"image"];
Run Code Online (Sandbox Code Playgroud)
当使用分析I/O活动的I/O活动工具时,我发现有几个与此文件相关的活动导致"没有这样的文件或目录"错误,并且这些活动确实需要一些时间.
这些活动就像阅读这些文件:
image_2_only_@2x~iphone.png
image@2x~iphone.png
image@2x.png (this one doesn't fail)
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,每次失败的操作都需要比成功的操作更多的时间.
如何避免这种性能问题?
或者Chrome可以在打开包含源代码中"debugger"关键字的页面时自动打开调试器吗?
我正在阅读:To-Many Properties的集合访问器模式,但我不确定我在哪里或应该使用它.有人可以指出一些我可以使用的方案Collection Accessor Patterns for To-Many Properties来使我的代码更好或使我的代码编写更容易吗?
我正在使用OpenGL ES来渲染一些特效,我不想向用户展示这个,我只想将结果保存为UIImage,有人可以帮助我吗?
这是我正在使用的代码,我可以得到一个包含我使用的红色清晰颜色的图像,但没有显示几何图形.
#import "RendererGL.h"
#import <GLKit/GLKit.h>
#import <UIKit/UIKit.h>
#import <OpenGLES/EAGL.h>
#import <OpenGLES/EAGLDrawable.h>
#import <OpenGLES/ES2/glext.h>
#import <QuartzCore/QuartzCore.h>
static NSInteger WIDTH_IN_PIXEL = 400;
static NSInteger HEIGHT_IN_PIXEL = 300;
typedef struct {
GLKVector3 positionCoords;
}
SceneVertex;
static const SceneVertex vertices[] =
{
{{-0.5f, -0.5f, 0.0}}, // lower left corner
{{ 0.5f, -0.5f, 0.0}}, // lower right corner
{{-0.5f, 0.5f, 0.0}} // upper left corner
};
@implementation RendererGL
{
EAGLContext* _myContext;
GLuint _framebuffer;
GLuint _colorRenderbuffer;
GLuint _depthRenderbuffer;
GLuint _vertexBufferID;
GLKBaseEffect *_baseEffect;
}
- …Run Code Online (Sandbox Code Playgroud) 我正在使用zipfile,在某些情况下,我需要为占位符目的创建一个空的zip文件.我怎样才能做到这一点?
我知道这个:
在2.7.1版中更改:如果文件是使用模式"a"或"w"创建的,然后在不向归档添加任何文件的情况下关闭,则将为文件写入空归档的相应ZIP结构.
但我的服务器使用较低版本2.6.
ios ×6
iphone ×5
objective-c ×2
aes ×1
cocoa ×1
core-data ×1
encryption ×1
javascript ×1
macos ×1
opengl-es ×1
performance ×1
python ×1
uiimage ×1
uiview ×1
zipfile ×1