小编Old*_*her的帖子

为MVC设计模式组织iOS项目

我正在研究iPhone的多视图应用程序,目前我的视图(VIEW)设置和转换(CONTROLLER?)工作得很好.现在我想为实际的程序数据(MODEL)添加对象.

我的问题是:我应该如何构建我的数据以遵守模型视图控制器(MVC)设计模式?我知道我应该创建单独的类来实现我的数据结构,并且我的控制器类可以从视图中将消息传递给它们,但是我应该检查其他任何组织注意事项吗?特别是Cocoa Touch,Xcode或iOS特有的那些?

其他细节:播放预先录制的音频和用户生成的音频也是必不可少的.我知道这些是模型元素,但它们与"V"和"C"的确切关系我仍然有点模糊.我想当用户操作需要音频播放时,CONTROLLER应该将消息传递给MODEL以准备好适当的声音,但是应该在哪里确切地调节播放?在一个与我想象的ViewController分开的"PlayerController"中?

非常感谢和赦免我的MVC noobery.

model-view-controller xcode cocoa-touch project-organization ios

9
推荐指数
2
解决办法
4824
查看次数

在运行时循环遍历所有对象属性

我想创建一个Objective-C基类,它在运行时对所有属性(不同类型)执行操作.由于不会总是知道属性的名称和类型,我该怎么做这样的事情呢?

@implementation SomeBaseClass

- (NSString *)checkAllProperties
{
    for (property in properties) {
        // Perform a check on the property
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:这在自定义- (NSString *)description:覆盖中特别有用.

iphone cocoa-touch objective-c ios

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

你如何构建两个DFA的联合?

有没有人对构建两个给定DFA的并集算法有直截了当的描述?例如,假设我们有两个DFA超过{0,1}

{w|w has an odd number of characters}
  w has states A and B

delta | 0  | 1
----------------
  A   | B  | B
----------------
  B   | A  | A


{x|x has an even number of 1s}
  x has states a and b

delta | 0  | 1
----------------
  a   | a  | b
----------------
  b   | b  | a
Run Code Online (Sandbox Code Playgroud)

我有一个结果转换表显示联合:

delta | 0  | 1 
----------------
  Aa  | Ba | Bb
----------------
  Ab  | Bb | Ba
---------------- …
Run Code Online (Sandbox Code Playgroud)

union transition finite-automata dfa

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

Main中UIApplicationMain之后的Objective C执行顺序是什么?

有人可以解释如何控制iOS应用程序中的执行流程吗?我知道UIApplicationMain首先从main调用.那又怎样?我定义的方法和主要方法之间有什么关系?这一切都是事件驱动的还是有一些结构化的序列?

我不是故意这么模糊,我只需要知道从哪里开始.也许我是以错误的方式看待这个.

例如,在C++中我会做类似的事情:

#include "myMethods.h"
int main (int argc, char * const argv[]) {

   Method1(); // Initialization
   Method2(); // Opening views and options
   Method3(); // Meat of the program

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

objective-c sequence execution uiapplication control-flow

8
推荐指数
2
解决办法
9194
查看次数

查看插件不可用于文件所有者

我在创建一个新的视图控制器时收到以下消息.一切都在Xcode中编译没有错误,但应用程序在从RootViewController加载新视图时立即退出.

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "HomeView" nib but the view outlet was not set.'
Run Code Online (Sandbox Code Playgroud)

为解决此问题,我尝试将文件所有者连接到视图,但文件所有者甚至无法使用视图插件.

cocoa interface-builder uiviewcontroller nsobject

7
推荐指数
1
解决办法
3859
查看次数

将类作为方法集合而没有属性是否可以?

我正在编写一堆通用但相关的函数供不同的对象使用.我想对这些函数进行分组,但我不确定是否应该将它们放在一个类或简单的平面库文件中.

像类一样对待它们似乎并不正确,因为没有一种对象可以使用它们,并且包含所有这些函数的类可能不一定具有任何属性.

将它们视为平面库文件似乎过于简单,因为缺少更好的单词.

这是什么最好的做法?

php oop namespaces code-organization libraries

7
推荐指数
1
解决办法
247
查看次数

Flurry startsession的正确appDelegate方法?

Flurry docs建议startSession拨打电话applicationDidFinishLaunching:.

这有两个问题......

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    [FlurryAnalytics startSession:@"AWESOMEAPIKEY"];

    // ...
}
Run Code Online (Sandbox Code Playgroud)

1)不是application:didFinishLaunchingWithOptions:新批准的发射点吗?

2)这只在启动时调用一次,但是每次用户打开或切换回应用程序时我们不想要会话信息吗?或者Flurry通过听某些事件或自己处理所有这些事情NSNotification


是不是一个更好的地方把startSession电话放进去,applicationDidBecomeActive:或者applicationWillEnterForeground:像这样?

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // ... Flurry AppCircle setup
    [FlurryAnalytics startSession:@"AWESOMEAPIKEY"];

    // ... your setup
}
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch uiapplicationdelegate flurry ios

6
推荐指数
1
解决办法
1871
查看次数

配置iPhone未在Xcode Organizer(或iTunes)中显示

我最近设置了应用ID和配置文件,并且能够在设备上成功测试我的应用.然后我下载了一些示例iOS XCode项目,并在部署其中一个项目并从手机中删除示例应用程序后,无法将手机与iTunes同步或在Xcode管理器窗口中看到它已连接(该设备仍然列在左侧窗格,但显示为已断开连接).当我尝试在设备上构建和运行时,现在在Xcode中创建的所有新项目都会收到以下消息.

No provisioned iOS device is connected.
Run Code Online (Sandbox Code Playgroud)

我正在运行Xcode 3.2.5和iOS 4.2.

有任何想法吗?

非常感谢.

iphone sync ios xcode-organizer ios-provisioning

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

骆驼套装标识符,名称中带有"iPhone"或"iPad"

TRiViAL,我知道,但是在坚持camelCase惯例时,iDevice名称中是否存在"i"的约定,作为更长标识符的一部分?Apple是否有任何方法名称或标识符作为示例?

someIPadMethodsomeiPadMethod

cocoa cocoa-touch objective-c naming-conventions

5
推荐指数
1
解决办法
216
查看次数

参数化的UIButton动作选择器用于另一个类中的方法?

这在很大程度上是一个语法问题.如何设置UIButton操作选择器来调用不同类的方法?我已经完成了类的#import,我需要使用按钮调用它的方法,我对按钮代码的外观有以下部分理解:

    UIButton *btnSplash = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btnSplash.frame = CGRectMake(250, 270, 180, 30);
    [btnSplash setTitle:@"Menu" forState:UIControlStateNormal];
    [btnSplash addTarget:self action:@selector([CLASS METHOD:PARAMETER]) forControlEvents:UIControlEventTouchUpInside];
    [self addSubview:btnSplash];
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

预期':'在'''之前

@selector中缺少方法名称

我在参考库中看到的示例代码调用了本地方法,所以我试图概括并且我的尝试迄今为止都没有用.

谢谢

iphone cocoa-touch objective-c uibutton

4
推荐指数
1
解决办法
5309
查看次数