最后一次思考我的一个问题.我主要是一个.net开发人员,他涉猎到面向iPhone和Mac的Objective-C.
你如何在objective-c中的方法之间发送"数据集".例如,在C#中,您可以使用数据填充自定义类,并在类型自定义类的List中传递它.EG如果您有客户类,您可以执行以下操作:
List<Customer> customers = DataLayer.GetAllCustomers();
Run Code Online (Sandbox Code Playgroud)
我可以看到如何在obj-c中完成这一操作的唯一方法是使用自定义对象填充NSArray?这是一种有效的做事方式吗?还有其他建议吗?我使用sqlite作为我想要返回的数据库/数据.
这是我一直想知道的事情,但从未打扰过.
为临时变量赋值是否更有效,而不是继续使用该值.一个例子可能更清楚:
string s = reader.GetItem[0].ToString();
someClass.SomeField = s;
someOtherClass.someField = s;
Run Code Online (Sandbox Code Playgroud)
要么
someClass.SomeField = reader.GetItem[0].ToString();
someOtherClass.someField = reader.GetItem[0].ToString();
Run Code Online (Sandbox Code Playgroud)
我最初的想法是顶级示例会更高效,因为它不必访问Item集合或调用ToString.
有兴趣听到其他人的想法,或任何方式的确定答案.
我是OpenGL的新手,我正在通过使用ES 2.0为Android制作2D游戏来自学.我首先创建一个"Sprite"类,创建一个平面并为其渲染纹理.为了练习,我有两个Sprite对象在同一个地方交替绘制.我在ES 1.0上运行得很好,但是现在我已经切换到2.0,我得到了一个没有错误的黑屏.我已经筋疲力尽地想弄清楚我做错了什么,但我有一种强烈的感觉,它与我的着色器有关.我将把所有相关的代码转储到这里,希望有人可以给我一个答案或者一些关于我做错的建议.如果我没有立即明白我做错了什么,或许就如何解决这个问题提出一些建议?提前感谢您查看我即将发布的所有代码.
我发布的三个类是:
GameRenderer - 我的GLSurfaceView
着色器的渲染器 - 创建着色器程序对象
Sprite - 创建一个正方形并在其上绘制纹理
另外,我将发布我的顶点和片段着色器源.
相关课程我认为没有足够的相关性来发布:
GameActivity GameView
- 一个GLSurfaceView
GameLoopThread - 我的主要游戏循环
FPSCounter - 每100帧输出平均FPS到logcat.
GameRender类:
package com.detour.raw;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.content.Context;
import android.graphics.Bitmap;
import android.opengl.GLES20;
import android.opengl.GLU;
import android.opengl.Matrix;
import android.opengl.GLSurfaceView;
public class GameRenderer implements GLSurfaceView.Renderer{
private static final String LOG_TAG = GameRenderer.class.getSimpleName();
Context mContext;
Bitmap bitmap;
private float red = 0.0f;
private float green = 0.0f;
private float blue = 0.0f;
Shader …Run Code Online (Sandbox Code Playgroud) 我有一个UIPickerView,在不使用时会逐渐消失到20%的alpha.我希望用户能够触摸选择器并将其淡入.
如果我在主视图上放置touchesBegan方法,我可以让它工作,但这仅在用户触摸View时才有效.我尝试了UIPickerView的子类化,并在那里有一个touchesBegan,但它没有用.
我猜它与Responder链有关,但似乎无法解决.
我想在Cocoa-Touch中实现一个Ping类.从我已经完成的谷歌搜索和我看过的旧c代码,似乎使用ICMP协议是最好的方法.
我想我的问题是,iPhone SDK中是否支持ICMP,如果没有,我可以使用CoreFoundation Network类中的任何内容吗?我已经看过CFHost和CFHostStartInfoResolution(主机,kCFHostReachability和错误),但更多的是检查主机是否存在而不是花时间做出响应等.
我在SQL Server中有一个历史表,它基本上通过一个进程跟踪一个项目.该项目具有一些固定的字段,这些字段在整个过程中不会发生变化,但还有一些其他字段,包括状态和Id,随着过程步骤的增加而增加.
基本上我想在给定批量参考的情况下检索每个项目的最后一步.所以,如果我做了
Select * from HistoryTable where BatchRef = @BatchRef
Run Code Online (Sandbox Code Playgroud)
它将返回批次中所有项目的所有步骤 - 例如
Id Status BatchRef ItemCount 1 1 Batch001 100 1 2 Batch001 110 2 1 Batch001 60 2 2 Batch001 100
但我真正想要的是:
Id Status BatchRef ItemCount 1 2 Batch001 110 2 2 Batch001 100
编辑:Appologies - 似乎无法让TABLE标签与Markdown一起使用 - 按照字母的帮助,在预览中看起来很好
我处理相对敏感的代码,我们不希望落入坏人之手.到目前为止,所有代码都已保留在内部,所以它不是问题.我每周一两天都在家工作,我们希望在笔记本电脑上保护代码.
我们已经考虑了一些替代方案,但Windows EFS和Bitlocker似乎是最明显的.笔记本电脑没有TPM硬件,我无法从家中访问Active Directory,因此EFS看起来是可选的.
基本上,是否有其他人有任何替代方案,或使用EFS加密源代码的问题?
我想知道人们在C#中使用属性作为对象初始化器的想法.由于某种原因,它似乎打破了构造函数的基本原理.
一个例子...
public class Person
{
string firstName;
string lastName;
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string LastName
{
get { return lastName; }
set { lastName= value; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后用.....做对象初始化
Person p = new Person{ FirstName = "Joe", LastName = "Smith" };
Person p = new Person{ FirstName = "Joe" };
Run Code Online (Sandbox Code Playgroud) 我想过滤datepicker上的可选日期.我基本上需要按工作日过滤 - 即假期和周末不可选择.
我知道你可以使用beforeShowDate中的函数指定日期:你也可以使用$ .datepicker.noWeekends.
问题是:你能两个都做吗?
我想将这个函数从obj c转换为swift,buti无法翻译部分代码.有人可以解释我如何从AVFondation拍照或帮我翻译这个功能?
- (void) capImage { //method to capture image from AVCaptureSession video feed
AVCaptureConnection *videoConnection = nil;
for (AVCaptureConnection *connection in stillImageOutput.connections) {
for (AVCaptureInputPort *port in [connection inputPorts]) {
if ([[port mediaType] isEqual:AVMediaTypeVideo] ) {
videoConnection = connection;
break;
}
}
if (videoConnection) {
break;
}
}
NSLog(@"about to request a capture from: %@", stillImageOutput);
[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error) {
if (imageSampleBuffer != NULL) {
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
[self processImage:[UIImage imageWithData:imageData]];
}
}]; …Run Code Online (Sandbox Code Playgroud) 我正在维护一个在两个位置使用的客户端的应用程序.一个在英格兰,一个在波兰.
该数据库存储在英格兰,并使用格式£1000.00作为货币,但信息正在波兰本地收集,其中1000,00是格式.
我的问题是,在VB6中有一个函数,它采用本地格式的货币字符串并转换为另一个,或者我只需要解析字符串并替换,或者.?
顺便说一句,我看过CCur,但不确定这是否能满足我的需求.
我想更新/升级Sqlite3的标准Leopard安装到> 3.5以使用Cocoa项目中的新sqlite_xxx_v2方法.
我似乎无法找到有关如何执行此操作的任何信息.有没有人有任何提示或网站概述更新程序.
iPhone上也支持3.5+.我知道它是嵌入式的所以不应该是一个问题......
objective-c ×4
cocoa ×2
cocoa-touch ×2
iphone ×2
sqlite ×2
.net ×1
android ×1
avfoundation ×1
c# ×1
database ×1
datepicker ×1
glsl ×1
ios ×1
java ×1
jquery ×1
localization ×1
macos ×1
obfuscation ×1
opengl-es ×1
performance ×1
sprite ×1
sql ×1
sql-server ×1
swift ×1
t-sql ×1
uipickerview ×1
vb6 ×1