小编jv4*_*v42的帖子

(不是这样)使用属性时愚蠢的Objective-C继承问题 - GCC Bug?

更新 - 许多人坚持要我为该物业申报iVar.有些人说不是这样,因为我正在使用Modern Runtime(64位).我可以确认我已经成功使用@property而没有iVars几个月了.因此,我认为'正确'的答案是解释为什么在64位上我突然必须明确声明iVar何时(并且仅当)我将从子类访问它.到目前为止,我见过的唯一一个可能是GCC错误(感谢Yuji).毕竟不是那么简单......为了澄清可能的错误:当从基类继承时,子进程无法访问父进程的iVar,并且在访问iVar之前,该子进程也恰好使用@synthesize实现了一个UNRELATED访问器.

我一直在摸不着头几个小时 - 我没有太多使用遗产.

在这里,我设置了一个简单的Test B类,它继承自Test A,其中声明了一个ivar.但是我得到了变量未声明的编译错误.这只发生在我添加属性和合成声明时 - 没有它们就可以正常工作.

TestA标题:

#import <Cocoa/Cocoa.h>
@interface TestA : NSObject {
    NSString *testString;
}
@end
Run Code Online (Sandbox Code Playgroud)

TestA实现为空:

#import "TestA.h"
@implementation TestA  
@end
Run Code Online (Sandbox Code Playgroud)

TestB标题:

#import <Cocoa/Cocoa.h>
#import "TestA.h"
@interface TestB : TestA {
}
@property (nonatomic, retain) NSString *testProp;
@end
Run Code Online (Sandbox Code Playgroud)

TestB实现(错误 - 'testString'未声明)

#import "TestB.h"
@implementation TestB
@synthesize testProp;
- (void)testing{
    NSLog(@"test ivar is %@", testString);
}
@end
Run Code Online (Sandbox Code Playgroud)

inheritance cocoa gcc objective-c gcc4

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

通过文件偏移从2TB文件中随机读取多个300字节块的最快方法?

我在RAID 5(4 x 7.2k @ 3TB)系统上有一些2TB只读(没有写入一次)文件.

现在我有一些想要读取该文件部分的线程.每个线程都有一个所需的块数组.每个块都通过文件偏移(位置)和大小(大多数约300个字节)来寻址.

读取此数据的最快方法是什么.我不关心CPU周期,(磁盘)延迟是重要的.所以,如果可能的话,我想利用硬盘的NCQ.

由于文件是高度压缩的,将随机访问,我确切地知道位置,我没有其他方法来优化它.

  • 我应该将文件读取汇集到一个线程吗?
  • 我应该保持文件打开吗?
  • 如果每个线程(可能大约30个)同时打开每个文件,那么新的线程是什么(来自Web服务器)?
  • 如果我等待100毫秒并按文件偏移量排序我的读数(最低的第一个)会有帮助吗?

读取数据的最佳方法是什么?你有经验,技巧和提示吗?

.net c# file-io binary-data

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

确定给定数字所需的行/列

我在运行时确定了许多控件(在这种情况下为图表).我想将它们放在具有适当行数和列数的网格中.例如,

  • 4项= 2 x 2
  • 8项= 4 x 2
  • 9项= 3 x 3
  • 20项= 5 x 4
  • 11项= 4 x 3(我不关心空单元格)

对不起,我没有任何代码可以显示我的尝试.我开始玩,确定平方根是否是一个整数,如果数字可以被2整除,并意识到我不知道如何解决这个问题.但这就是我的想法:

  • 如果平方根是整数,则使用平方根表示行数和列数(没有问题)
  • 如果没有,请确保该数字是偶数(如果必须,请添加一个 - 没有问题)
  • 找到产生该数字的最高两个整数.例如,如果我有20个控件,网格应该是5 x 4而不是10 x 2(不确定最好的方法)

如果有人能指出我正确的方向,我会很感激 - 如果我离开基地的话,我会建议一个不同的算法.

c# algorithm math silverlight

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

ApplicationBar始终为NULL

我有以下XAML代码:

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="False" x:Name="PageBar">
        <shell:ApplicationBarIconButton IconUri="/Assets/Icons/appbar.questionmark.rest.png" Text="Help" x:Name="HelpIcon" Click="HelpIcon_Click" />
        <shell:ApplicationBar.MenuItems>
            <shell:ApplicationBarMenuItem Text="Help" x:Name="HelpItem" Click="HelpIcon_Click" />
            <shell:ApplicationBarMenuItem Text="About" x:Name="AboutItem" Click="AboutItem_Click" />
        </shell:ApplicationBar.MenuItems>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
Run Code Online (Sandbox Code Playgroud)

但在C#代码中总是如此null.

你知道为什么吗?

windows-phone-7 application-bar

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

如何创建具有空值支持的结构?

我是C#的新手.在c#中,我无法将结构的值设置为null,如何创建具有空值支持的结构?

c# nullable structure

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

Windows调试工具未安装

我正在尝试通过Windows SDK安装Windows调试工具,经过两次尝试后我无法做什么.我开始安装并没有收到任何错误,但调试工具(windbg和kd)无处可寻......日志旁边没用:

9:16:59 PM Monday, July 18, 2011: [SDKSetup:Info] Config_Products_DetermineProductState_End:   Product: Windows Debugging Tools 
9:16:59 PM Monday, July 18, 2011: [SDKSetup:Info] Config_Products_DetermineProductState_Begin: Product: Redistributable Components for Application Verifier and Windows Debugging Tools 
9:16:59 PM Monday, July 18, 2011: [SDKSetup:Info] Config_Products_DetermineProductState:       Product: Redistributable Components for Application Verifier and Windows Debugging Tools;  Installed: Unknown;
Run Code Online (Sandbox Code Playgroud)

有没有人有任何建议,从哪里开始调试为什么我无法安装调试工具?哦,具有讽刺意味!

winapi windbg remote-debugging

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

从NSArray中删除对象

我有一个ARC项目.

NSArray内心有一些东西.在某些时候,我需要更改数组中的对象.

惠特NSMutableArray我会做的:

[array removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

我确信这个方法会释放数组中包含的所有对象.但是对于NSArray我不能那样做!所以,我的问题是:如果我将数组设置为nil然后重新初始化它,那么数组中包含的旧对象是否真的从内存中释放出来?

array = nil;
array = [[NSArray alloc] initWithArray:newArray];
Run Code Online (Sandbox Code Playgroud)

或者我需要使用NSMutableArray

release nsmutablearray nsarray ios automatic-ref-counting

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

导航时在iPhone OpenGL应用程序上随机崩溃

我正在开发一个混合OpenGL ES和常规iPhone UI的iPhone应用程序.这意味着有一个EAGLView问候用户,然后一些常规UIViews被推过它(有一个UINavigationController作为根控制器).

从子视图导航回来时,我有一个随机(但非常频繁)的崩溃.这是一个(...删除...)堆栈跟踪,来自Release版本,但它在Debug中崩溃了.

#0  0x006863d0 in GetFBOBuffers ()
#1  0x00660120 in TerminateScene ()
#2  0x00660314 in FlushScene ()
#3  0x00660cd4 in FlushHW ()
#4  0x0066a6a0 in GLESPresentView ()
#5  0x323533a4 in -[EAGLContext presentRenderbuffer:] ()
#6  0x000026c0 in -[EAGLView presentFramebuffer] (self=0x11ce60, _cmd=<value temporarily unavailable, due to optimizations>) at (...)/Classes/EAGLView.m:157
#7  0x00004fdc in -[(...)ViewController drawFrame] (self=<value temporarily unavailable, due to optimizations>, _cmd=<value temporarily unavailable, due to optimizations>) at (...)    ViewController.m:380
#8  0x336ebd9a in __NSFireTimer () …
Run Code Online (Sandbox Code Playgroud)

iphone crash opengl-es objective-c

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

需要Hashtable和Arraylist

我试图在我的Windows 7 Phone应用程序中使用其他人的C#类.这些类使用Hashtable类型的对象.

有问题的文件有

using System.Collections;
Run Code Online (Sandbox Code Playgroud)

在顶部,所以我假设它是它想要的Hashtable对象.

当我尝试构建我的解决方案时,我得到的错误是无法找到类型或命名空间名称'Hashtable',您是否缺少using指令或程序集引用.

在微软的Hashtable文档中,我看到它表示Assembly:mscorlib

但是如果我尝试通过Project> Add Reference添加mscorlib,VS说它无法添加它,因为它会被构建系统自动引用.

我错过了什么?

c# dll visual-studio windows-phone-7 assembly-references

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

如何使用NSUndoManager支持替换UITextView中的文本?

我希望能够以编程方式替换UITextView中的某些文本,因此我将此方法编写为UITextView类别:

- (void) replaceCharactersInRange:(NSRange)range withString:(NSString *)newText{

    self.scrollEnabled = NO;

    NSMutableString *textStorage = [self.text mutableCopy];
    [textStorage replaceCharactersInRange:range withString:newText];

    //replace text but undo manager is not working well
    [[self.undoManager prepareWithInvocationTarget:self] replaceCharactersInRange:NSMakeRange(range.location, newText.length) 
                                                                       withString:[textStorage substringWithRange:range]];
    NSLog(@"before replacing: canUndo:%d", [self.undoManager canUndo]); //prints YES
    self.text = textStorage; 
    NSLog(@"after replacing: canUndo:%d", [self.undoManager canUndo]); //prints NO
    if (![self.undoManager isUndoing])[self.undoManager setActionName:@"replace characters"];
    [textStorage release];

    //new range:
    range.location = range.location + newText.length;
    range.length = 0;
    self.selectedRange = range;

    self.scrollEnabled = YES;

}
Run Code Online (Sandbox Code Playgroud)

它工作但NSUndoManager在self.text=textStorage我找到一个私有API 之后就停止工作(它似乎被重置):-insertText:(NSString *)可以完成这项工作,但是谁知道如果我使用它,Apple是否会批准我的应用程序.有没有办法在UITextView中使用NSUndoManager支持替换文本?或许我在这里遗失了什么?

iphone objective-c uitextview nsundomanager ios

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