出于审美原因,我决定改变这个:
if ((self = [super init])) {
// init self
}
return self;
Run Code Online (Sandbox Code Playgroud)
进入:
if (!(self = [super init])) return nil;
// init self
return self;
Run Code Online (Sandbox Code Playgroud)
从理论上讲,他们做同样的事情.第一个是经典的方式,简单的工作.调试第二个,我发现它几乎工作."if"是正确的,init代码也是,但是,在返回"self"之后,调试器返回到"if"并返回nil!
我用第二个类创建的所有类我都使用"正确"的方式,因为它们以nil启动,但我真的想知道为什么它会像那样!我担心这可能是其他错误的结果!
我有一个包含两个字符串的数组:
NSArray *sendingArray = [[NSArray alloc]initWithObjects:@"CAT",@"DOG",nil];
Run Code Online (Sandbox Code Playgroud)
我将数组转换为NSData:
NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:sendingArray];
Run Code Online (Sandbox Code Playgroud)
现在我需要将我转换NSData(myData)为const uint8_t
我正在使用此代码通过Wifi网络发送一组值.
我使用下面的代码通过wifi成功发送一个字符串(我的字符串是"字符串").
const uint8_t *message = (const uint8_t *)[string UTF8String];
[_outStream write:bytes maxLength:len];
Run Code Online (Sandbox Code Playgroud)
我写了下面的代码来发送NSData对象,但它有错误.
代码是:
const uint8_t *bytes = (uint8_t)[myData bytes];//this line getting error.
[_outStream write:bytes maxLength:len];
Run Code Online (Sandbox Code Playgroud)
我可以NSData(myData)通过上述方法发送我而不将其转换为const uint8_t吗?如果有,请给我我需要写的代码.
或者任何一个可以告诉我将我的方式NSData(myData)来const uint8_t
我有一个返回a CGPath并正在生成分析器警告的方法.该方法在协议中声明.以下是生成警告的示例实现:
"在第47行分配并存储到'path'中的对象的潜在泄漏":
- (CGPathRef)createPathForBounds:(CGRect)bounds key:(NSString *)key;
{
if ([key isEqualToString:OvalColumn])
{
CGPathRef path = CGPathCreateWithEllipseInRect(bounds, NULL);
return path;
}
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
以下是生成警告的示例用法,"调用者此时不拥有的对象的引用计数的不正确的减少"
CGPathRef path = [self.delegate createPathForBounds:bounds key:someKey];
// Use the path to do some drawing
CGRelease(path);
Run Code Online (Sandbox Code Playgroud)
我的记忆管理是正确的; 我CGPath从我的协议方法传回一个保留,我在调用块中释放它,所以我知道警告可以被忽略,但我想完全删除它们.
我错过了一个让分析仪满意的命名约定吗?可以在协议中定义函数吗?子类化将如何工作?
你能告诉我在Objective-C中存档NSArray自定义对象的语法或示例程序吗?
我有几个SQL语句存储在文本文件中.如何将这些文件拉入SSIS中的字符串变量,以便在多个位置使用相同的查询?
回答问题:
查询冗长而复杂,我更喜欢在真正的文本编辑器中编辑,而不是在SSIS文本框中编辑.我还希望那些无法访问SSIS或不知道如何使用SSIS的人可以编辑查询.最后,每个查询用于许多不同的数据流.如果我错了,请纠正我,但如果我在多个位置使用相同的查询,我相信我必须使用变量或重写每个数据流的代码.
我有以下文件名为test.rb编码UTF-16LE
# encoding: UTF-16LE
test = "test!"
p test
Run Code Online (Sandbox Code Playgroud)
使用以下命令运行它不会产生任何结果
ruby ./test.rb
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
如果有人想知道,我试图将我的源设置为UTF-16LE编码的原因是我正在使用UTF-16LE输入和输出文件编码.我的印象是,如果我在读取文件时正确设置编码并在输出时正确设置编码并且我# encoding:在源代码中正确设置了编码,那么一切都应该正常工作.如果有人看到任何错误(或更容易的方式),请随时告诉我.
请看下面的代码并告诉我为什么skillPercentange总是为零:
NSInteger skillPercentange;
skillPercentange=totalCorrectAns * reloader/100;
Run Code Online (Sandbox Code Playgroud) 我有一个UIViewController管理一些数据的显示.当用户想要编辑这些数据时,我将编辑推UIViewController送到堆栈.当用户完成编辑时,顶部视图控制器从堆栈中弹出.在弹出编辑视图后,我知道需要更新显示的最优雅方式是什么?
我认为我可以将内容更新代码放入viewDidLoad我的数据视图的方法中,但是当我的视图显示时,并不总是调用此方法,尤其是当我在视图堆栈中向下导航时.
我还考虑将我的数据视图控制器设置为UINavigationController等待– navigationController:didShowViewController:animated:被调用的委托,我担心的是可能有其他视图控制器在显示时需要通知它会变成一个轻微的头痛管理哪个控制器应该接收didShowViewController消息.
我有这种类型的文件:
@firstTablel:1#one#two#three#four; 2#苹果#塔#花#机器人;
这是我的csv文件的一个例子......"firstTable"是我的表,1和2是我的两个项目的两个id.
我如何在目标c中读取此文件?你能帮助我吗?