gpt4 book ai didi

ios - 未定义的方法 `initWithNibName'

转载 作者:行者123 更新时间:2023-11-29 03:35:45 27 4
gpt4 key购买 nike

我刚刚开始使用 RubyMotion 学习 iOS 开发,我正在这样做 tutorial 。这似乎很容易理解,但现在我在运行 rake 命令时遇到了这个错误:

ColorController.rb:7:in `initWithColor:': undefined method `initWithNibName' for #<ColorController:0x9b4f470> (NoMethodError)
from SearchController.rb:46:in `open_color:'
from Color.rb:35:in `block in find:'
from query.rb:358:in `call_delegator_with_response'
from query.rb:128:in `connectionDidFinishLoading:'

我到了教程页面上发现 WHEW WELL THAT IS A TON OF CODE NOW ISN'T IT. 的部分,但我被困在那里。目前我的代码如下所示:

# app_delegate.rb
class AppDelegate
def application(application, didFinishLaunchingWithOptions:launchOptions)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)

@search_controller = SearchController.alloc.initWithNibName(nil, bundle: nil)
@navigation_controller = UINavigationController.alloc.initWithRootViewController(@search_controller)

@window.rootViewController = @navigation_controller
@window.makeKeyAndVisible
true
end
end

# ColorController.rb
class ColorController < UIViewController
attr_accessor :color
def initWithColor(color)
initWithNibName(nil, bunlde: nil)
self.color = color
self
end
def viewDidLoad
super
self.title = self.color.hex

@info_container = UIView.alloc.initWithFrame [[0, 0], [self.view.frame.size.width, 110]]
@info_container.backgroundColor = UIColor.lightGrayColor

self.view.addSubview @info_container

@color_view = UIView.alloc.initWithFrame [[10, 10], [90, 90]]
@color_view.backgroundColor = String.new(self.color.hex).to_color

self.view.addSubview @color_view

@color_label = UILabel.alloc.initWithFrame [[110, 30], [0, 0]]
@color_label.text = self.color.hex
@color_label.sizeToFit

self.view.addSubview @color_label

@text_field = UITextField.alloc.initWithFrame [[110, 60], [100, 26]]
@text_field.placeholder = "tag"
@text_field.textAlignment = UITextAlignmentLeft
@text_field.autocapitalizationType = UITextAutocapitalizationTypeNone
@text_field.borderStyle = UITextBorderStyleRoundedRect

self.view.addSubview @text_field

@add_button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
@add_button.setTitle("Add", forState: UIControlStateNormal)
@add_button.setTitle("Adding", forState: UIControlStateDisabled)
@add_button.setTitleColor(UIColor.lightGrayColor, forState: UIControlStateDisabled)
@add_button.sizeToFit
@add_button.frame = [[@text_field.frame.origin.x + @text_field.frame.size.width + 10, @text_field.frame.origin.y], @add_button.frame.size]

self.view.addSubview(@add_button)

table_frame = [[0, @info_container.frame.size.height], [self.view.bounds.size.width, self.view.bounds.size.height - @info_container.frame.size.height - self.navigationController.navigationBar.frame.size.height]]
@table_view = UITableView.alloc.initWithFrame(table_frame, style: UITableViewStylePlain)

self.view.addSubview(@table_view)

end
end

# SearchController.rb
class SearchController < UIViewController
def viewDidLoad
super
self.title = "Search"
self.view.backgroundColor = UIColor.whiteColor

@text_field = UITextField.alloc.initWithFrame [[10, 10], [self.view.frame.size.width - 20, 30]]
@text_field.placeholder = "#abcabc"
@text_field.textAlignment = UITextAlignmentLeft
@text_field.autocapitalizationType = UITextAutocapitalizationTypeNone
@text_field.borderStyle = UITextBorderStyleRoundedRect
@text_field.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2 - 100)

self.view.addSubview @text_field

@search_button = UIButton.buttonWithType(UIButtonTypeRoundedRect)
@search_button.setTitle("Search", forState: UIControlStateNormal)
@search_button.setTitle("Loading", forState: UIControlStateDisabled)
@search_button.sizeToFit
@search_button.center = CGPointMake(self.view.frame.size.width / 2, @text_field.center.y + 40)

self.view.addSubview @search_button

@search_button.when(UIControlEventTouchUpInside) do
@search_button.enabled = false
@text_field.enabled = false

hex = @text_field.text
hex = hex[1..-1] if hex[0] == "#"

Color.find(hex) do |color|
if color.nil?
@search_button.setTitle("None :(", forState: UIControlStateNormal)
else
@search_button.setTitle("Search", forState: UIControlStateNormal)
self.open_color(color)
end
@search_button.enabled = true
@text_field.enabled = true
end

end

end
def open_color(color)
self.navigationController.pushViewController(ColorController.alloc.initWithColor(color), animated: true)
end
end

我还有另外两个模型,我确信它们不相关,除非您要运行代码。

谁能告诉我我该怎么办?我意识到我正在尝试调用 initWithNibName 方法,该方法未在我的类中定义,但这就是教程所做的,所以我认为它是正确的。我需要在 ColorController 类上定义它吗?或者我可以用其他方式调用它吗?

最佳答案

您刚刚错误地拼写了“bundle”。

更改:

initWithNibName(nil, bunlde: nil)

到:

initWithNibName(nil, bundle: nil)

关于ios - 未定义的方法 `initWithNibName',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com